WO2023043919A1 - Automatically synchronizing a transmitter and receiver in a magnetic tracking system using information from an inertial measurement unit - Google Patents
Automatically synchronizing a transmitter and receiver in a magnetic tracking system using information from an inertial measurement unit Download PDFInfo
- Publication number
- WO2023043919A1 WO2023043919A1 PCT/US2022/043656 US2022043656W WO2023043919A1 WO 2023043919 A1 WO2023043919 A1 WO 2023043919A1 US 2022043656 W US2022043656 W US 2022043656W WO 2023043919 A1 WO2023043919 A1 WO 2023043919A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- receiver
- transmitter
- sigmat
- rotated
- imu
- Prior art date
Links
- 238000005259 measurement Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 76
- 239000011159 matrix material Substances 0.000 claims description 91
- 230000001133 acceleration Effects 0.000 claims description 41
- 238000012937 correction Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 abstract description 14
- 238000012545 processing Methods 0.000 description 13
- 230000005484 gravity Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 8
- 238000013459 approach Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 229940050561 matrix product Drugs 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006880 cross-coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001584 occupational therapy Methods 0.000 description 1
- 238000000554 physical therapy Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D3/00—Indicating or recording apparatus with provision for the special purposes referred to in the subgroups
- G01D3/02—Indicating or recording apparatus with provision for the special purposes referred to in the subgroups with provision for altering or correcting the law of variation
- G01D3/022—Indicating or recording apparatus with provision for the special purposes referred to in the subgroups with provision for altering or correcting the law of variation having an ideal characteristic, map or correction data stored in a digital memory
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B7/00—Measuring arrangements characterised by the use of electric or magnetic techniques
- G01B7/003—Measuring arrangements characterised by the use of electric or magnetic techniques for measuring position, not involving coordinate determination
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D18/00—Testing or calibrating apparatus or arrangements provided for in groups G01D1/00 - G01D15/00
- G01D18/008—Testing or calibrating apparatus or arrangements provided for in groups G01D1/00 - G01D15/00 with calibration coefficients stored in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D5/00—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
- G01D5/12—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means
- G01D5/14—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing the magnitude of a current or voltage
- G01D5/20—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing the magnitude of a current or voltage by varying inductance, e.g. by a movable armature
- G01D5/204—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing the magnitude of a current or voltage by varying inductance, e.g. by a movable armature by influencing the mutual induction between two or more coils
Definitions
- the present invention relates generally to magnetic tracking devices, and more particularly to phase synchronization between a transmitter and a receiver for such devices.
- Alternating current (AC) magnetic tracking systems typically use a method in which magnetic fields are generated and measured using a system of orthogonal coils to generate position and orientation information which is used by a computer system.
- One common application is tracking a user for the purpose of playing a video game or being immersed in a virtual reality world.
- a transmitter has three orthogonal coils that generate the magnetic field signal, and may be located in a fixed position, such as in a local base station, video game console or other apparatus.
- a receiver also known as a sensor, in a tracking device similarly has three orthogonal magnetic field sensing coils and provides information about the sensed magnetic field to a processor, which derives the position and orientation of the tracking device relative to the base station from such information.
- Such AC magnetic trackers, and the processors which determine the position and orientation of such trackers, are well known to those of skill in the art.
- U.S. Patent No. 4,737,794 (“the ‘794 patent”) incorporated by reference herein, teaches a “method and apparatus for determining remote object orientation and position with an electromagnetic coupling.” It shows a transmitter comprising a plurality of radiating antennas located at a source to provide a plurality of magnetic fields spanning three dimensional space and defining a source reference coordinate frame, and a receiver comprising a plurality of receiving antennas located on an object to be tracked for receiving that field.
- a processor receives the outputs from the receiving antennas and converts the received components of the transmitted magnetic fields into remote object position and orientation relative to the source reference coordinate frame.
- the antennas may be, for example, dipole antennas, loop antennas, or coil antennas.
- a receiver In such a system having three transmitter antennas, a receiver generates a signal that is a 3x3 signal matrix, called a “SigMat,” which represents a total of nine measures of the three transmitted magnetic fields; each column corresponds to the sensed field from a separate one of the three coils of the transmitter, and each row corresponds to a separate one of the three coils of the receiver.
- SigMat 3x3 signal matrix
- a 3x3 matrix that might represent SigMat is: al l al2 al3 a21 a22 a23 a31 a32 a33 where al 1 through a33 represent the nine measures of the three magnetic fields, one measure of each magnetic field by each of the three receiver coils.
- a synchronization (“sync”) signal between the transmitter and receiver indicates the phases of the magnetic field signals and enables the receiver to extract the relative signs of the signals.
- sync synchronization
- the signs indicate the orientation and direction of the magnetic field (i.e., positive or negative in direction and its orientation).
- phase information is derived by placing the receiver at a known location and orientation (e.g., the receiver is a video game controller which is placed by a user in a docking station configured to hold the controller), and comparing the possible values of SigMat at that location to expected values of SigMat to find the best match.
- a known location and orientation e.g., the receiver is a video game controller which is placed by a user in a docking station configured to hold the controller
- a system and method which automatically determines the phase relationship between a transmitter and receiver in a magnetic tracking system.
- One embodiment discloses a method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising; receiving, at a processor, the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating, by the processor, a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating, by the processor, a global orientation of the transmitter from the transmitter IMU acceleration data and the
- a further embodiment discloses the method further comprising: determining, by the processor, the calibrated, rotated SigMat having a next lowest residual error; determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
- Another embodiment discloses an automatically synchronizing magnetic tracking system for properly determining a position and orientation of a receiver relative to a transmitter, comprising; a transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU); receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU); and a processor configured to: receive the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generate a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generate a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generate a set of rotated SigMats by
- a further embodiment discloses the system wherein the processor is further configured to: determine the calibrated, rotated SigMat having a next lowest residual error; determine that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determine that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
- Still another embodiment discloses a non-transitory computer-readable storage medium having embodied thereon instructions for causing a computing device to execute a method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising: receiving the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating a global
- a further embodiment discloses the non-transitory computer readable storage medium, the method further comprising: determining the calibrated, rotated SigMat having a next lowest residual error; determining that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
- Figure l is a block diagram of one embodiment of a system for automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity.
- Figure 2 is a flowchart of one embodiment of a method to automatically synchronize a magnetic field transmitter and receiver to resolve phase ambiguity.
- a method and an apparatus for automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity so that phase information for the position and orientation of the receiver may be derived and maintained.
- the synchronization process includes the use of inertial measurement unit (IMU) information to determine the phase information.
- IMU inertial measurement unit
- the present approach determines which is the best option among four sync options (i.e., rotations of the signal matrix, as explained further below) automatically without user input.
- the option chosen is based on information from IMUs on the transmitter and the receiver, which IMUs measure some physical relationships with the world independent of the generated and transmitted electromagnetic field.
- the sync option which produces a position and orientation estimation that best conforms with the IMU measurements is chosen.
- an IMU is an electronic device that is commonly used to measure and report the velocity, orientation and gravitational forces on a device or craft, using a combination of accelerometers and gyroscopes, and sometimes even magnetometers.
- the accelerometer and gyroscope in the receiver IMU in the receiver is used to define a receiver global orientation (e.g., in the form of a gravity vector or rotation matrix) and the accelerometer and gyroscope in the transmitter IMU is used to define a transmitter global orientation (e.g., in the form of a gravity vector or rotation matrix).
- the receiver global orientation is then multiplied by the rotation of the receiver in the transmitter frame of reference for each of the four possible solutions of the SigMat signs.
- the resulting rotated receiver global orientations are then compared with the transmitter gravity vector.
- the rotated receiver global orientations corresponding to the correct sync solution i.e., having the correct SigMat signs
- would be parallel to the transmitter global orientation thus identifying which of the four possible solutions of the SigMat signs is the correct one to use to resolve the phase ambiguity.
- the present approach determines which is the best option among four sync options automatically without user input.
- the option chosen is based on information from IMUs on the transmitter and the receiver, which IMUs measure some physical relationships with the world independent of the generated and transmitted electromagnetic field.
- the sync option which produces a position and orientation estimation that best conforms with the IMU measurements is then chosen as the sync solution.
- FIG. l is a block diagram of one embodiment of a system for automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity so that phase information for the position and orientation of the receiver may be derived and maintained.
- System 100 contains a transmitter “TX” 102, a receiver “RX” 104 and a processor 106.
- transmitter 102 is located in a base station, while receiver 104 is attached to some movable object or person. Further, transmitter 102 contains source magnetic coils 108 for generating magnetic fields, while receiver 104 contains sensing magnetic coils 112 for sensing the magnetic fields.
- transmitter 102 and receiver 104 each contain an IMU 110 and 114, respectively.
- System 100 also contains processor 106, which generates a SigMat and automatically performs synchronization as described herein from the data it receives from transmitter 102 and receiver 104, and then generates a position and orientation of the receiver. It is to be understood that processor 106 may be located physically separate from both transmitter 102 and receiver 104 or may be physically combined with either one of transmitter 102 or receiver 104.
- a collection of data referred to herein as a “sample” or “frame,” is obtained.
- this collection of data is obtained by processor 106 from receiver 104 and transmitter 102 of Figure 1.
- This collection of data includes new sensor data in the form of a raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity from the transmitter.
- the collected IMU data may need to be corrected so that it is expressed in the local reference frame of the corresponding coils instead of the local reference frame of the IMU sensor.
- the raw SigMat data may have erroneous phase information as indicated by its sign values.
- sign values of the receiver generated raw SigMat are accurate or, instead, are rotated around one of the X, Y or Z axis of the transmitter source magnetic coils. It is this ambiguity that the present approach resolves by using IMU data.
- the global orientation of the receiver is generated from the receiver IMU acceleration data and receiver IMU angular velocity data obtained in step 202.
- the receiver’s global orientation is generated by processor 106 using an IMU orientation fusion filter such as Mahoney, Madgwick, Kalman, or an Attitude and Heading Reference System (AHRS), each as is known in the art.
- the receiver’s global orientation’s pitch and roll should be expressed as relative to gravity but may have its yaw be expressed as relative to an arbitrary heading (as opposed to North or East).
- the resulting generated receiver global orientation can be expressed as a rotation matrix, a rotation quarternion, a gravity vector, or whatever other form is needed in a given implementation.
- the global orientation of the transmitter is generated from the transmitter IMU acceleration data and transmitter IMU angular velocity data obtained in step 202.
- the transmitter’s global orientation is generated by processor 106 using an IMU orientation fusion filter such as Mahoney, Madgwick, Kalman, or an Attitude and Heading Reference System (AHRS), each as is known in the art.
- the transmitter’s global orientation’s pitch and roll should be expressed as relative to gravity but may have its yaw be expressed as relative to an arbitrary heading (as opposed to North or East) and need not share the arbitrary reference heading of the receiver’s global orientation generated in step 204.
- the resulting generated transmitter global orientation can be expressed as a rotation matrix, a rotation quarternion, a gravity vector, or whatever other form is needed in a given implementation.
- a set of four rotated SigMats is generated from the raw SigMat obtained in step 202.
- left multiplication is used because matrix multiplication is not commutative.
- matrix SI is an identity matrix and, as is known in the art, the product of any matrix and the identity matrix results in the same matrix. As such, no multiplication need be performed in this step because it has no effect. However, such null rotation multiplication is described here to maintain consistency with the other multiplication rotations described above. As such, despite describing a null rotation multiplication, no such multiplication need actually be performed in this step (again, because it will result in the same matrix) and it will still be considered the equivalent of a null rotation multiplication.
- step 208 is the generation of a set of four rotated SigMats with three having been rotated around one of the transmitter X, Y or Z source magnetic coil axis and the fourth having no rotation around any of the transmitter X, Y or Z source magnetic coil axis.
- this calibration is performed by processor 106 of Figure 1. Step 210 thus generates a set of four calibrated, rotated SigMats.
- these static matrices Rc and Tc are predetermined for each device and are found via prior calibration.
- Tc is a 3x3 fixed-value matrix that normalizes the gain on all 3 axes, corrects for physical mounting rotation of the coil, and corrects for the non-orthogonal skew due to cross-coupling of the transmitter coils.
- Rc corrects for the same properties of the receiver coils.
- a residual error is determined for each of the four calibrated, rotated SigMats generated in step 210.
- determining a residual error for each one of the four calibrated, rotated SigMats first determines an expected position and orientation of the receiver using the global orientation of the receiver determined in step 204, the global orientation of the transmitter determined in step 206, and the calibrated, rotated SigMat generated in step 210 and is performed by processor 106 of Figure 1.
- the residual error, for each of the four calibrated, rotated SigMats is determined by calculating a difference between the calibrated, rotated SigMat and an expected SigMat at the expected position and orientation of the receiver.
- Techniques are known in the art for determining an expected SigMat at the position and orientation the process predicts for the receiver and for calculating a residual error (see, e.g., Equation 7 and corresponding discussion in U.S. Patent Application No.
- Equation 7 may, in a given case, be unable to find any good solution to the position and orientation of the receiver in which case the expected SigMat may be considered a 0 matrix for the purposes of this embodiment).
- the calibrated, rotated SigMat having the smallest residual error is selected, by processor 106 of Figure 1, as the SigMat that best resolves the phase ambiguity and will therefore be the SigMat used for determining the position and orientation of the receiver.
- the one with the residual error, as determined in step 212, having the smallest magnitude is the one selected as being the correct SigMat to be used for determining the position and orientation of the receiver.
- the calibrated, rotated SigMat having the smallest magnitude residual error may not be the best solution. Instead, in a preferred embodiment, the calibrated, rotated SigMat having the smallest magnitude residual error and the calibrated, rotated SigMat having the next smallest magnitude residual error are used to determine whether the calibrated, rotated SigMat having the smallest magnitude residual error is the correct SigMat to be used, as will now be described with reference to steps 216 through 220, each as performed by processor 106 of Figure 1.
- step 216 the calibrated, rotated SigMat having the next smallest magnitude residual error is determined. This determination can be made in essentially the same way the calibrated, rotated SigMat having the smallest magnitude residual error is determined in step 214.
- step 218 the residual error from the calibrated, rotated SigMat having the smallest magnitude residual error is compared to a predefined sync value threshold to determine if the calibrated, rotated SigMat having the smallest magnitude residual error is a worthy candidate for syncing (i.e., is good enough to be used for determining the receiver position and orientation).
- the predefined sync value threshold is 0.2, meaning that no more than 20% of the SigMat having the smallest magnitude residual error can be unaccounted for by the residual error determination made in step 212.
- step 218 if the residual error from the calibrated, rotated SigMat having the smallest magnitude residual error does not exceed 0.2, it is deemed a worthy candidate for syncing and the process continues to step 220. Otherwise, the automatic sync process returns to step 202 to obtain new data in order to repeat the process.
- step 220 residual error from the calibrated, rotated SigMat having the smallest error is compared to the residual error from the calibrated, rotated SigMat having the next smallest error. This is done to ensure that the calibrated, rotated SigMat having the smallest error is unambiguously the best candidate. Comparing these two calibrated, rotated SigMats is done by determining if the residual error from the calibrated, rotated SigMat having the smallest error divided by the residual error from the calibrated, rotated SigMat having the next smallest error is less than a predefined sync value ratio.
- the predefined sync value ratio is 0.5, which means that the best sync value candidate (i.e., the calibrated, rotated SigMat having the smallest error) must be at least twice as good as the next best sync value candidate (i.e., the calibrated, rotated SigMat having the next smallest error).
- step 220 if the residual error from the calibrated, rotated SigMat having the smallest error is at least twice as good as the residual error from the calibrated, rotated SigMat having the next smallest error, then the SigMat having the smallest error is used as the selected SigMat for resolving the phase ambiguity and therefore for determining position and orientation of the receiver. Otherwise, the automatic sync process returns to step 202 to obtain new data in order to repeat the process.
- determining residual errors in step 212 is performed using IMU acceleration and/or angular velocity directly, for example using a Kalman filter implementation, in which case steps 204 and 206 of process 200 would not be needed and, instead, IMU vectors (i.e., from the IMU data obtained in step 202) would be used in step 212.
- a method and apparatus has thus been disclosed for automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity so that phase information for the position and orientation of the receiver may be derived and maintained. Further, as described and shown, this process is performed automatically, that is, without requiring user intervention, involvement, or action, thus making it particularly useful with remotely- directed, non-expert users (e.g., patients undergoing telehealth-based physical or occupational therapy). [0063] Additional embodiments to those mentioned above are described below. In some embodiments, a method for automatically determining relative orientation between a transmitter and a receiver in a system is described. The method includes measuring inertial measurement unit (IMU) data at the transmitter and at the receiver. A signal transmitted from the transmitter is received at the receiver.
- IMU inertial measurement unit
- the system generates a signal matrix based on the received signal and determines a plurality of modified signal matrices based on multiplying each of a plurality of correction matrices and the signal matrix.
- a target signal matrix based on a set of orientation coordinates optimized by the IMU data is then generated.
- the system determines a plurality of residual signal matrices are by calculating a difference between each of the plurality of modified signal matrices and the target signal matrix.
- a plurality of magnitudes corresponding to each of the plurality of residual signal matrices are also calculated. The calculations of magnitudes are used to identify a modified signal matrix, from the plurality of modified signal matrices.
- the identified modified signal matrix is a signal matrix with the least magnitude from the plurality of calculated magnitudes.
- the system generates the corrected position and orientation information of the receiver relative to the transmitter from the identified modified signal matrix.
- the method for automatically determining relative orientation between a transmitter and a receiver described above includes receiving, at the receiver, a second signal transmitted from the transmitter. A second signal matrix based on the received second signal is generated at the receiver. A corrected signal matrix is calculated by multiplying the second signal matrix and the stored correction matrix.
- the corrected signal matrix with the least magnitude may be stored in a non-transitory computer readable storage medium such as a hard disk drive, floppy disk, optical disc such as a compact disc (CD) or digital versatile disc (DVD), or flash memory.
- a non-transitory computer readable storage medium such as a hard disk drive, floppy disk, optical disc such as a compact disc (CD) or digital versatile disc (DVD), or flash memory.
- the plurality of correction matrices described above are associated with rotations over each of a transmitter x-axis, y-axis, and z-axis, and an identity matrix.
- the receiver is attached to a movable person or an object.
- the receiver, or the transmitter may be part of a virtual reality, augmented reality, or mixed reality system and be associated with a sensor that is attached to a person’s body part.
- processors There may be a single processor, or multiple processors performing different functions of the functions described herein.
- processors One of skill in the art will appreciate how to determine which and how many processors will be appropriate for a specific intended application, and where in a given system they might be located.
- the described method and apparatus can be implemented in numerous ways, including as a process, an apparatus, or a system.
- the methods described herein may be implemented by program instructions for instructing a processor to perform such methods, and such instructions recorded on a non-transitory computer readable storage medium such as a hard disk drive, floppy disk, optical disc such as a compact disc (CD) or digital versatile disc (DVD), flash memory, etc. It may be possible to incorporate the described methods into hard-wired logic if desired. It should be noted that the order of the steps of the methods described herein may be altered and still be within the scope of the disclosure.
- Item 1 A method of automatically determining relative orientation between a transmitter and a receiver in a system, the method comprising:
- IMU inertial measurement unit
- Item 2 The method of item 1, further comprising: generating the corrected position and orientation information of the receiver relative to the transmitter from the identified modified signal matrix.
- Item 3 The method of item 1, the method further comprising storing the correction matrix associated with the least magnitude of the plurality of calculated magnitudes.
- Item 4 The method of item 3, wherein the method further comprising: receiving, at the receiver, a second signal transmitted from the transmitter; generating, at the receiver, a second signal matrix based on the second signal ; calculating a corrected signal matrix by multiplying second signal matrix and the stored correction matrix.
- Item 5 The method of item 1, further comprising: determining if the value of the magnitude that is least of a residual matrix is below a predetermined threshold; and in response to determining that the value of the magnitude that is least of a residual matrix is below a predetermined threshold, not identifying a modified signal matrix, from the plurality of modified signal matrices, that has the least magnitude from the plurality of calculated magnitudes.
- Item 6 The method of item 1, further comprising: determining if the value of the ratio of the magnitude that is least of a residual matrix to the magnitude that is second least of a residual matrix is less than a threshold value; and in response to determining that the value is second least of a residual matrix is less than a threshold value, not identifying a modified signal matrix of the plurality of modified signal matrices that have the least magnitude from the plurality of calculated magnitudes.
- Item 7 The method of item 1, wherein steps (d), (f), and (g) can be performed in a sequential order for each correction matrix.
- Item 8 The method of item 1, wherein steps (d), (f), and (g) can be performed in parallel for each correction matrix.
- Item 9 The method of item 1, wherein steps (d), (f), and (g) can be performed in any combination of sequentially and in parallel for each correction matrix.
- Item 10 The method of item 1, wherein the plurality of correction matrices is associated with rotations over each of a transmitter x-axis, y-axis, and z-axis, and an identity matrix.
- Item 11 The method of item 1, wherein steps (d), (e), (f), (g), and (h) are performed at any of the receiver, the transmitter, or a host computer.
- Item 12 The method of item 11, wherein the corrected position and orientation data is transmitted to one of the receiver, the transmitter, or the host computer that does not perform steps (c), (d), (e), (f), (g), and (h).
- Item 13 The method of item 1, wherein the transmitter and receiver together form a system selected from a group consisting of one of an augmented reality system, mixed reality system, assisted reality system, and virtual reality system.
- Item 14 The method of item 1, wherein, the transmitter and receiver are positioned on an object.
- Item 15 The method of item 1, wherein, the transmitter and receiver are body sensors positioned on the user.
- Item 16 The method of item 15, wherein the body sensors are positioned at a predefined pose of the user’s body.
- Item 17 The method of item 15, wherein the body sensors are worn on the hand, arm, foot, leg, neck, back, waist, or hip of the user’s body.
- Item 18 The method of item 1, further comprising rendering a virtual body part of the user at a location in a display of a head mounted display, wherein the virtual body part is associated with a body sensor, from the body sensors positioned on the user, and the rendering is performed if the location of the body sensor is in a field of view of the user.
- a system comprising: a transmitter and a receiver, wherein the receiver is in communication with the transmitter, and the transmitter and receiver together form an electromagnetic tracking system; and processing circuitry configured to automatically determine relative orientation between the transmitter and the receiver in a system, wherein the processing circuitry is configured to:
- IMU inertial measurement unit
- Item 20 The system of item 19, wherein the processing circuitry is further configured to: generate the corrected position and orientation information of the receiver relative to the transmitter from the identified modified signal matrix.
- Item 21 The system of item 19, wherein the processing circuitry is further configured to: store the correction matrix associated with the least magnitude of the plurality of calculated magnitudes.
- Item 22 The system of item 21, wherein the processing circuitry is further configured to: receive, at the receiver, a second signal transmitted from the transmitter; generate, at the receiver, a second signal matrix based on the second signal; calculate a corrected signal matrix by multiplying second signal matrix and the stored correction matrix.
- Item 23 The system of item 19, wherein the processing circuitry is further configured to: determine if the value of the magnitude that is least of a residual matrix is below a predetermined threshold; and in response to determining that the value of the magnitude that is least of a residual matrix is below a predetermined threshold, not identify a modified signal matrix, from the plurality of modified signal matrices, that has the least magnitude from the plurality of calculated magnitudes.
- Item 24 The system of item 19, wherein the processing circuitry is further configured to: determine if the value of the ratio of the magnitude that is least of a residual matrix to the magnitude that is second least of a residual matrix is less than a threshold value; and in response to determining that the value is second least of a residual matrix is less than a threshold value, not identify a modified signal matrix of the plurality of modified signal matrices that have the least magnitude from the plurality of calculated magnitudes.
- Item 25 The system of item 19, wherein the processing circuitry performs steps (d), (f), and (g) in a sequential order for each correction matrix.
- Item 26 The system of item 19, wherein the processing circuitry performs steps (d), (f), and (g) in parallel for each correction matrix.
- Item 27 The system of item 19, wherein the processing circuitry performs steps (d), (f), and (g) in any combination of sequentially and in parallel for each correction matrix.
- Item 28 The system of item 19, wherein the plurality of correction matrices is associated with rotations over each of a transmitter x-axis, y-axis, and z-axis, and an identity matrix.
- Item 29 The system of item 19, wherein steps (d), (e), (f), (g), and (h) are performed at processing circuitry located in any of the receiver, the transmitter, or a host computer.
- Item 30 The system of item 29, wherein the corrected position and orientation data is transmitted to one of the receiver, the transmitter, or the host computer that does not contain the processing circuitry that performs steps (c), (d), (e), (f), (g), and (h).
- Item 31 The system of item 19, wherein the transmitter and receiver together form a system selected from a group consisting of one of an augmented reality system, mixed reality system, assisted reality system, and virtual reality system.
- Item 32 The system of item 19, wherein, the transmitter and receiver are positioned on an object.
- Item 33 The system of item 19, wherein, the transmitter and receiver are body sensors positioned on the user.
- Item 34 The system of item 33, wherein the body sensors are positioned at a predefined pose of the user’s body.
- Item 35 The system of item 33, wherein the body sensors are worn on the hand, arm, foot, leg, neck, back, waist, or hip of the user’s body.
- Item 36 The system of item 19, wherein the processing circuitry is further configured to: render a virtual body part of the user at a location in a display of a head mounted display, wherein the virtual body part is associated with a body sensor, from the body sensors positioned on the user, and the rendering is performed if the location of the body sensor is in a field of view of the user.
- Item 37 A method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising: receiving, at a processor, the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating, by the processor, a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating, by the processor, a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU ang
- Item 38 The method of item 37, further comprising: determining, by the processor, the calibrated, rotated SigMat having a next lowest residual error; determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
- Item 39 The method of item 38, wherein the predefined sync threshold is 0.2.
- Item 40 The method of item 38, wherein the predefined sync value ratio is 0.5.
- An automatically synchronizing magnetic tracking system for properly determining a position and orientation of a receiver relative to a transmitter, comprising: a transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU); receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU); and a processor configured to: receive the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generate a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generate a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generate a set of rotated SigMats by multiplying the raw
- Item 42 The system of item 41 wherein the processor is further configured to: determine the calibrated, rotated SigMat having a next lowest residual error; determine that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determine that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
- the predefined sync threshold is 0.2.
- Item 44 The system of item 42, wherein the predefined sync value ratio is 0.5.
- a non-transitory computer readable storage medium having embodied thereon instructions for causing a computing device to execute a method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising: receiving the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating a global orientation of the transmitter from the
- Item 46 The non-transitory computer readable storage medium of item 9, the method further comprising: determining the calibrated, rotated SigMat having a next lowest residual error; determining that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
- Item 47 The non-transitory computer readable storage medium of item 46, wherein the predefined sync threshold is 0.2.
- Item 48 The non-transitory computer readable storage medium of item 46, wherein the predefined sync value ratio is 0.5.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Technology Law (AREA)
- Gyroscopes (AREA)
Abstract
Automatic synchronization of a magnetic field transmitter and receiver is performed to resolve phase ambiguity so that phase information, used in determining the position and orientation of the receiver, may be derived and maintained. Inertial measurement unit (IMU) information is used to infer gravity-relative orientations of the transmitter and receiver, which are then used as constraints in the synchronization process to determine the position and orientation of the receiver from all four possible solutions or variations. The variation that best conforms to the IMU orientations is chosen as the sync candidate.
Description
AUTOMATICALLY SYNCHRONIZING A TRANSMITTER AND RECEIVER IN A MAGNETIC TRACKING SYSTEM USING INFORMATION FROM AN INERTIAL MEASUREMENT UNIT
[0001] This application claims priority to U.S. Provisional Application No. 63/245,125, filed September 16, 2021, U.S. Provisional Application No. 63/277,748, filed November 10, 2021, and U.S. Non-Provisional Application No. 17/728,094, filed April 25, 2022, which are hereby incorporated by reference herein in their entireties.
Field of the Invention
[0002] The present invention relates generally to magnetic tracking devices, and more particularly to phase synchronization between a transmitter and a receiver for such devices. Background of the Invention
[0003] Alternating current (AC) magnetic tracking systems typically use a method in which magnetic fields are generated and measured using a system of orthogonal coils to generate position and orientation information which is used by a computer system. One common application is tracking a user for the purpose of playing a video game or being immersed in a virtual reality world.
[0004] In some prior art systems, a transmitter has three orthogonal coils that generate the magnetic field signal, and may be located in a fixed position, such as in a local base station, video game console or other apparatus. A receiver, also known as a sensor, in a tracking device similarly has three orthogonal magnetic field sensing coils and provides information about the sensed magnetic field to a processor, which derives the position and orientation of the tracking device relative to the base station from such information.
[0005] Such AC magnetic trackers, and the processors which determine the position and orientation of such trackers, are well known to those of skill in the art. One such example, U.S. Patent No. 4,737,794 (“the ‘794 patent”) incorporated by reference herein, teaches a “method and apparatus for determining remote object orientation and position with an electromagnetic coupling.” It shows a transmitter comprising a plurality of radiating antennas located at a source to provide a plurality of magnetic fields spanning three dimensional space and defining a source reference coordinate frame, and a receiver comprising a plurality of receiving antennas located on an object to be tracked for receiving that field. A processor receives the outputs from the receiving antennas and converts the received components of the transmitted magnetic fields into remote object position and
orientation relative to the source reference coordinate frame. The antennas may be, for example, dipole antennas, loop antennas, or coil antennas.
[0006] In such a system having three transmitter antennas, a receiver generates a signal that is a 3x3 signal matrix, called a “SigMat,” which represents a total of nine measures of the three transmitted magnetic fields; each column corresponds to the sensed field from a separate one of the three coils of the transmitter, and each row corresponds to a separate one of the three coils of the receiver. One example of a 3x3 matrix that might represent SigMat is: al l al2 al3 a21 a22 a23 a31 a32 a33 where al 1 through a33 represent the nine measures of the three magnetic fields, one measure of each magnetic field by each of the three receiver coils.
[0007] It is the evaluation of SigMat that results in a determination of the position of the receiver. However, as noted in the ‘794 patent, the sign of the position is ambiguous, which means that there is a hemispherical ambiguity that cannot be resolved without further information, since due to the physics of magnetic fields a second receiver displaced 180 degrees about the origin from a first receiver will produce the same SigMat.
[0008] In wired tracking systems, a synchronization (“sync”) signal between the transmitter and receiver indicates the phases of the magnetic field signals and enables the receiver to extract the relative signs of the signals. (In some cases another means, such as a camera or other optical device, may be used to pass or determine this information.) The signs indicate the orientation and direction of the magnetic field (i.e., positive or negative in direction and its orientation).
[0009] In a wireless system, when there is no sync signal between the receiver and transmitter, there remains an ambiguity with respect to the signal’s signs and thus also with respect to the position and orientation of the receiver relative to the transmitter. Thus, when the phase of the transmitted signal is unknown, the sign of the received signals is ambiguous, which can create an uncertainty in the location of the receiver with respect to its direction from the transmitter.
[0010] In order to resolve this phase ambiguity in a wireless system, a startup synchronization process has been used, according to a known prior approach, in which the phase information is derived by placing the receiver at a known location and orientation (e.g.,
the receiver is a video game controller which is placed by a user in a docking station configured to hold the controller), and comparing the possible values of SigMat at that location to expected values of SigMat to find the best match.
[0011] It some applications, however, there is a requirement that the system be able to determine the correct receiver position and orientation without any user intervention. In other words, it is desirable for the system to be able to resolve such phase ambiguity without requiring the user to perform any specialized task such as placing the receiver in a docking station or other known position.
Summary of the Invention
[0012] A system and method is disclosed which automatically determines the phase relationship between a transmitter and receiver in a magnetic tracking system.
[0013] One embodiment discloses a method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising; receiving, at a processor, the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating, by the processor, a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating, by the processor, a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generating, by the processor, a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices; generating, by the processor, a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determining, by the processor, a residual error of each of the calibrated, rotated SigMats; and selecting, by the processor, the calibrated, rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter.
[0014] A further embodiment discloses the method further comprising: determining, by the processor, the calibrated, rotated SigMat having a next lowest residual error; determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
[0015] Another embodiment discloses an automatically synchronizing magnetic tracking system for properly determining a position and orientation of a receiver relative to a transmitter, comprising; a transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU); receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU); and a processor configured to: receive the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generate a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generate a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generate a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices; generate a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determining a residual error of each of the calibrated, rotated SigMats; and select the rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter .
[0016] A further embodiment discloses the system wherein the processor is further configured to: determine the calibrated, rotated SigMat having a next lowest residual error; determine that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determine that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the
calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
[0017] Still another embodiment discloses a non-transitory computer-readable storage medium having embodied thereon instructions for causing a computing device to execute a method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising: receiving the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generating a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices; generating a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determining a residual error of each of the calibrated, rotated SigMats; and selecting the calibrated, rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter .
[0018] A further embodiment discloses the non-transitory computer readable storage medium, the method further comprising: determining the calibrated, rotated SigMat having a next lowest residual error; determining that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
Brief Description of the Drawings
[0019] Figure l is a block diagram of one embodiment of a system for automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity.
[0020] Figure 2 is a flowchart of one embodiment of a method to automatically synchronize a magnetic field transmitter and receiver to resolve phase ambiguity.
Detailed Description of the Invention
[0021] A method and an apparatus is disclosed for automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity so that phase information for the position and orientation of the receiver may be derived and maintained.
[0022] To perform this process automatically, that is, without requiring user intervention, involvement, or action, another source of information about the system is used to infer the correct synchronization (“sync”). In particular, the synchronization process includes the use of inertial measurement unit (IMU) information to determine the phase information.
[0023] More particularly, the present approach determines which is the best option among four sync options (i.e., rotations of the signal matrix, as explained further below) automatically without user input. The option chosen is based on information from IMUs on the transmitter and the receiver, which IMUs measure some physical relationships with the world independent of the generated and transmitted electromagnetic field. The sync option which produces a position and orientation estimation that best conforms with the IMU measurements is chosen.
[0024] As is known in the art, an IMU is an electronic device that is commonly used to measure and report the velocity, orientation and gravitational forces on a device or craft, using a combination of accelerometers and gyroscopes, and sometimes even magnetometers. [0025] According to one embodiment of the present approach, the accelerometer and gyroscope in the receiver IMU in the receiver is used to define a receiver global orientation (e.g., in the form of a gravity vector or rotation matrix) and the accelerometer and gyroscope in the transmitter IMU is used to define a transmitter global orientation (e.g., in the form of a gravity vector or rotation matrix). The receiver global orientation is then multiplied by the rotation of the receiver in the transmitter frame of reference for each of the four possible solutions of the SigMat signs. The resulting rotated receiver global orientations are then compared with the transmitter gravity vector. Ideally, the rotated receiver global orientations corresponding to the correct sync solution (i.e., having the correct SigMat signs) would be
parallel to the transmitter global orientation thus identifying which of the four possible solutions of the SigMat signs is the correct one to use to resolve the phase ambiguity.
[0026] Thus, the present approach determines which is the best option among four sync options automatically without user input. The option chosen is based on information from IMUs on the transmitter and the receiver, which IMUs measure some physical relationships with the world independent of the generated and transmitted electromagnetic field. The sync option which produces a position and orientation estimation that best conforms with the IMU measurements is then chosen as the sync solution.
[0027] To further explain, not all possibilities of signs of the columns in a SigMat exist. The winding directions, according to the right hand rule in mathematics and physics, on the transmitter and receiver coils ensure that there are only four possibilities. Those possibilities are shown below.
[0028] Rotation around the transmitter X axis (changes signs of second and third SigMat columns): al l -al2 -al3 a21 -a22 -a23 a31 -a32 -a33
[0029] Rotation around the transmitter Y axis (changes signs of first and third SigMat columns):
-al l al2 -al3
-a21 a22 -a23
-a31 a32 -a33
[0030] Rotation around the transmitter Z axis (changes signs of first and second SigMat columns):
-al l -al2 al3
-a21 -a22 a23
-a31 -a32 a33
[0031] No (or “null”) rotation around any transmitter axis (not changing signs of SigMat columns): al l al2 al3 a21 a22 a23 a31 a32 a33
[0032] These rotations around a transmitter axis by changing signs of SigMat columns can be performed by applying a synch correction matrix to the SigMat using a Hadamard matrix product, as explained further elsewhere herein.
[0033] The resulting rotated receiver SigMat (or rotated receiver gravity vector) that best conforms to the transmitter global orientation (or transmitter gravity vector) is then chosen as the sync solution, as will now be explained.
[0034] Referring now to Figure l is a block diagram of one embodiment of a system for automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity so that phase information for the position and orientation of the receiver may be derived and maintained.
[0035] System 100 contains a transmitter “TX” 102, a receiver “RX” 104 and a processor 106. In some embodiments, transmitter 102 is located in a base station, while receiver 104 is attached to some movable object or person. Further, transmitter 102 contains source magnetic coils 108 for generating magnetic fields, while receiver 104 contains sensing magnetic coils 112 for sensing the magnetic fields. In the present embodiment, transmitter 102 and receiver 104 each contain an IMU 110 and 114, respectively.
[0036] System 100 also contains processor 106, which generates a SigMat and automatically performs synchronization as described herein from the data it receives from transmitter 102 and receiver 104, and then generates a position and orientation of the receiver. It is to be understood that processor 106 may be located physically separate from both transmitter 102 and receiver 104 or may be physically combined with either one of transmitter 102 or receiver 104.
[0037] Referring now to Figure 2, a method according to a process 200 of automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity according to one embodiment will now be explained. As will be explained, in one embodiment, the system of Figure 1 is used to implement and perform this method.
[0038] At step 202, a collection of data, referred to herein as a “sample” or “frame,” is obtained. In one embodiment, this collection of data is obtained by processor 106 from receiver 104 and transmitter 102 of Figure 1. This collection of data includes new sensor data in the form of a raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity from the transmitter. In some
embodiments, as would be understood by one of skill in the art in light of the teachings herein, the collected IMU data may need to be corrected so that it is expressed in the local reference frame of the corresponding coils instead of the local reference frame of the IMU sensor.
[0039] As has been explained, the raw SigMat data may have erroneous phase information as indicated by its sign values. In a wireless system lacking a sync signal, it is not known whether the sign values of the receiver generated raw SigMat are accurate or, instead, are rotated around one of the X, Y or Z axis of the transmitter source magnetic coils. It is this ambiguity that the present approach resolves by using IMU data.
[0040] In step 204, the global orientation of the receiver is generated from the receiver IMU acceleration data and receiver IMU angular velocity data obtained in step 202. In one embodiment, the receiver’s global orientation is generated by processor 106 using an IMU orientation fusion filter such as Mahoney, Madgwick, Kalman, or an Attitude and Heading Reference System (AHRS), each as is known in the art. The receiver’s global orientation’s pitch and roll should be expressed as relative to gravity but may have its yaw be expressed as relative to an arbitrary heading (as opposed to North or East). Further, the resulting generated receiver global orientation can be expressed as a rotation matrix, a rotation quarternion, a gravity vector, or whatever other form is needed in a given implementation. [0041] In step 206, the global orientation of the transmitter is generated from the transmitter IMU acceleration data and transmitter IMU angular velocity data obtained in step 202. In one embodiment, the transmitter’s global orientation is generated by processor 106 using an IMU orientation fusion filter such as Mahoney, Madgwick, Kalman, or an Attitude and Heading Reference System (AHRS), each as is known in the art. The transmitter’s global orientation’s pitch and roll should be expressed as relative to gravity but may have its yaw be expressed as relative to an arbitrary heading (as opposed to North or East) and need not share the arbitrary reference heading of the receiver’s global orientation generated in step 204. Further, the resulting generated transmitter global orientation can be expressed as a rotation matrix, a rotation quarternion, a gravity vector, or whatever other form is needed in a given implementation.
[0042] In step 208, a set of four rotated SigMats is generated from the raw SigMat obtained in step 202. In one embodiment, the four rotated SigMats are generated from the raw SigMat by processor 106 computing the Hadamard matrix product X = (raw SigMat) multiplied by
each of the four sync correction matrices. As would be understood by one of skill in the art in light of the teachings herein, left multiplication is used because matrix multiplication is not commutative.
[0043] In particular, rotation of the raw SigMat around the transmitter X axis is performed by multiplying the raw SigMat by a sync correction matrix “SX” having the form:
1 0 0
0 -1 0 0 0 -1
[0044] Further, rotation of the raw SigMat around the transmitter Y axis is performed by multiplying the raw SigMat by a sync correction matrix “SY” having the form:
-1 0 0 0 1 0
0 0 -1
[0045] Still further, rotation of the raw SigMat around the transmitter Z axis is performed by multiplying the raw SigMat by a sync correction matrix “SZ” having the form:
-1 0 0 0 -1 0 0 0 1
[0046] Yet still further, no (or “null”) rotation of the raw SigMat around any transmitter axis is performed by multiplying the raw SigMat by a sync correction matrix “SI” having the form:
1 0 0
0 1 0
0 0 1
[0047] It is to be noted that matrix SI is an identity matrix and, as is known in the art, the product of any matrix and the identity matrix results in the same matrix. As such, no multiplication need be performed in this step because it has no effect. However, such null rotation multiplication is described here to maintain consistency with the other multiplication rotations described above. As such, despite describing a null rotation multiplication, no such multiplication need actually be performed in this step (again, because it will result in the same matrix) and it will still be considered the equivalent of a null rotation multiplication. [0048] Again, the result of step 208 is the generation of a set of four rotated SigMats with three having been rotated around one of the transmitter X, Y or Z source magnetic coil axis
and the fourth having no rotation around any of the transmitter X, Y or Z source magnetic coil axis.
[0049] In step 210, the set of four rotated SigMats are calibrated, as would be understood by one of skill in the art in light of the teachings herein, by applying orthogonalization gain matrices Rc and Tc (e.g., the calibrated, rotated SigMat = Rc * rotated SigMat * Tc) to correct for the gain and crosstalk of the receiver and transmitter coils respectively. In one embodiment, this calibration is performed by processor 106 of Figure 1. Step 210 thus generates a set of four calibrated, rotated SigMats.
[0050] As is known in the art, these static matrices Rc and Tc are predetermined for each device and are found via prior calibration. In particular, Tc is a 3x3 fixed-value matrix that normalizes the gain on all 3 axes, corrects for physical mounting rotation of the coil, and corrects for the non-orthogonal skew due to cross-coupling of the transmitter coils. Rc corrects for the same properties of the receiver coils.
[0051] In step 212, a residual error is determined for each of the four calibrated, rotated SigMats generated in step 210. In one embodiment, determining a residual error for each one of the four calibrated, rotated SigMats first determines an expected position and orientation of the receiver using the global orientation of the receiver determined in step 204, the global orientation of the transmitter determined in step 206, and the calibrated, rotated SigMat generated in step 210 and is performed by processor 106 of Figure 1.
[0052] The residual error, for each of the four calibrated, rotated SigMats, is determined by calculating a difference between the calibrated, rotated SigMat and an expected SigMat at the expected position and orientation of the receiver. Techniques are known in the art for determining an expected SigMat at the position and orientation the process predicts for the receiver and for calculating a residual error (see, e.g., Equation 7 and corresponding discussion in U.S. Patent Application No. 16/368,543 (US 2019/0353745 Al); as would be understood by one of skill in the art, note that Equation 7 may, in a given case, be unable to find any good solution to the position and orientation of the receiver in which case the expected SigMat may be considered a 0 matrix for the purposes of this embodiment).
[0053] In step 214, in one embodiment, the calibrated, rotated SigMat having the smallest residual error is selected, by processor 106 of Figure 1, as the SigMat that best resolves the phase ambiguity and will therefore be the SigMat used for determining the position and orientation of the receiver. In other words, of the four calibrated, rotated SigMats generated
in step 210, in this embodiment, the one with the residual error, as determined in step 212, having the smallest magnitude is the one selected as being the correct SigMat to be used for determining the position and orientation of the receiver.
[0054] Determining which residual error has the smallest magnitude can be done according to any known formula. In one embodiment, determining magnitude is done according to the function mag(E) = trace (E*ET) / trace (Xcal*XcalT) where E is the residual error determined in step 212, Xcal is the calibrated, rotated SigMat generated in step 210, trace is the sum of the elements on the main diagonal (from the upper left to the lower right) of the matrix, and the superscript T indicates a matrix transpose (i.e., swapping the rows for the columns in the matrix).
[0055] However, simply selecting the calibrated, rotated SigMat having the smallest magnitude residual error as being the correct SigMat to use may not be the best solution. Instead, in a preferred embodiment, the calibrated, rotated SigMat having the smallest magnitude residual error and the calibrated, rotated SigMat having the next smallest magnitude residual error are used to determine whether the calibrated, rotated SigMat having the smallest magnitude residual error is the correct SigMat to be used, as will now be described with reference to steps 216 through 220, each as performed by processor 106 of Figure 1.
[0056] In step 216, the calibrated, rotated SigMat having the next smallest magnitude residual error is determined. This determination can be made in essentially the same way the calibrated, rotated SigMat having the smallest magnitude residual error is determined in step 214.
[0057] In step 218, the residual error from the calibrated, rotated SigMat having the smallest magnitude residual error is compared to a predefined sync value threshold to determine if the calibrated, rotated SigMat having the smallest magnitude residual error is a worthy candidate for syncing (i.e., is good enough to be used for determining the receiver position and orientation). In one embodiment, the predefined sync value threshold is 0.2, meaning that no more than 20% of the SigMat having the smallest magnitude residual error can be unaccounted for by the residual error determination made in step 212.
[0058] Therefore, in step 218, if the residual error from the calibrated, rotated SigMat having the smallest magnitude residual error does not exceed 0.2, it is deemed a worthy candidate for
syncing and the process continues to step 220. Otherwise, the automatic sync process returns to step 202 to obtain new data in order to repeat the process.
[0059] In step 220, residual error from the calibrated, rotated SigMat having the smallest error is compared to the residual error from the calibrated, rotated SigMat having the next smallest error. This is done to ensure that the calibrated, rotated SigMat having the smallest error is unambiguously the best candidate. Comparing these two calibrated, rotated SigMats is done by determining if the residual error from the calibrated, rotated SigMat having the smallest error divided by the residual error from the calibrated, rotated SigMat having the next smallest error is less than a predefined sync value ratio. In one embodiment, the predefined sync value ratio is 0.5, which means that the best sync value candidate (i.e., the calibrated, rotated SigMat having the smallest error) must be at least twice as good as the next best sync value candidate (i.e., the calibrated, rotated SigMat having the next smallest error).
[0060] Therefore, in step 220, if the residual error from the calibrated, rotated SigMat having the smallest error is at least twice as good as the residual error from the calibrated, rotated SigMat having the next smallest error, then the SigMat having the smallest error is used as the selected SigMat for resolving the phase ambiguity and therefore for determining position and orientation of the receiver. Otherwise, the automatic sync process returns to step 202 to obtain new data in order to repeat the process.
[0061] In an alternative embodiment, determining residual errors in step 212 is performed using IMU acceleration and/or angular velocity directly, for example using a Kalman filter implementation, in which case steps 204 and 206 of process 200 would not be needed and, instead, IMU vectors (i.e., from the IMU data obtained in step 202) would be used in step 212.
[0062] A method and apparatus has thus been disclosed for automatically synchronizing a magnetic field transmitter and receiver to resolve phase ambiguity so that phase information for the position and orientation of the receiver may be derived and maintained. Further, as described and shown, this process is performed automatically, that is, without requiring user intervention, involvement, or action, thus making it particularly useful with remotely- directed, non-expert users (e.g., patients undergoing telehealth-based physical or occupational therapy).
[0063] Additional embodiments to those mentioned above are described below. In some embodiments, a method for automatically determining relative orientation between a transmitter and a receiver in a system is described. The method includes measuring inertial measurement unit (IMU) data at the transmitter and at the receiver. A signal transmitted from the transmitter is received at the receiver. The system generates a signal matrix based on the received signal and determines a plurality of modified signal matrices based on multiplying each of a plurality of correction matrices and the signal matrix. A target signal matrix based on a set of orientation coordinates optimized by the IMU data is then generated. The system determines a plurality of residual signal matrices are by calculating a difference between each of the plurality of modified signal matrices and the target signal matrix. A plurality of magnitudes corresponding to each of the plurality of residual signal matrices are also calculated. The calculations of magnitudes are used to identify a modified signal matrix, from the plurality of modified signal matrices. In one embodiment, the identified modified signal matrix is a signal matrix with the least magnitude from the plurality of calculated magnitudes. [0064] The sequence of steps described in the above-mentioned embodiment are interchangeable and any combination and reordering of the sequence of steps are contemplated within the embodiments. The steps may also be performed either sequentially or in parallel.
[0065] In some embodiments, the system generates the corrected position and orientation information of the receiver relative to the transmitter from the identified modified signal matrix.
[0066] In some embodiments, the method for automatically determining relative orientation between a transmitter and a receiver described above includes receiving, at the receiver, a second signal transmitted from the transmitter. A second signal matrix based on the received second signal is generated at the receiver. A corrected signal matrix is calculated by multiplying the second signal matrix and the stored correction matrix.
[0067] In some embodiments, the corrected signal matrix with the least magnitude may be stored in a non-transitory computer readable storage medium such as a hard disk drive, floppy disk, optical disc such as a compact disc (CD) or digital versatile disc (DVD), or flash memory.
[0068] In some embodiments, the plurality of correction matrices described above are associated with rotations over each of a transmitter x-axis, y-axis, and z-axis, and an identity matrix.
[0069] In some embodiments, the receiver is attached to a movable person or an object. For example, the receiver, or the transmitter, may be part of a virtual reality, augmented reality, or mixed reality system and be associated with a sensor that is attached to a person’s body part.
[0070] The disclosed system and method has been explained above with reference to several embodiments. Other embodiments will be apparent to those skilled in the art in light of this disclosure. Certain aspects of the described method and apparatus may readily be implemented using configurations or steps other than those described in the embodiments above, or in conjunction with elements other than or in addition to those described above. It will also be apparent that in some instances the order of steps described herein may be altered without changing the result of performance of all of the described steps.
[0071] There may be a single processor, or multiple processors performing different functions of the functions described herein. One of skill in the art will appreciate how to determine which and how many processors will be appropriate for a specific intended application, and where in a given system they might be located.
[0072] It should also be appreciated that the described method and apparatus can be implemented in numerous ways, including as a process, an apparatus, or a system. The methods described herein may be implemented by program instructions for instructing a processor to perform such methods, and such instructions recorded on a non-transitory computer readable storage medium such as a hard disk drive, floppy disk, optical disc such as a compact disc (CD) or digital versatile disc (DVD), flash memory, etc. It may be possible to incorporate the described methods into hard-wired logic if desired. It should be noted that the order of the steps of the methods described herein may be altered and still be within the scope of the disclosure.
[0073] These and other variations upon the embodiments are intended to be covered by the present disclosure, which is limited only by the appended claims.
[0074] This specification discloses embodiments, which include, but are not limited to, the following:
Item 1. A method of automatically determining relative orientation between a transmitter and a receiver in a system, the method comprising:
(a) measuring, at the transmitter and receiver, inertial measurement unit (IMU) data;
(b) receiving, at the receiver, a signal transmitted from the transmitter;
(c) generating, at the receiver, a signal matrix based on the received signal;
(d) determining a plurality of modified signal matrices based on multiplying each of a plurality of correction matrices and the signal matrix;
(e) generating a target signal matrix based on a set of orientation coordinates optimized by the IMU data;
(f) determining a plurality of residual signal matrices based on calculating a difference between each of the plurality of modified signal matrices and the target signal matrix;
(g) calculating a plurality of magnitudes corresponding to each of the plurality of residual signal matrices; and
(h) identifying a modified signal matrix, from the plurality of modified signal matrices, that has the least magnitude from the plurality of calculated magnitudes.
Item 2 The method of item 1, further comprising: generating the corrected position and orientation information of the receiver relative to the transmitter from the identified modified signal matrix.
Item 3. The method of item 1, the method further comprising storing the correction matrix associated with the least magnitude of the plurality of calculated magnitudes.
Item 4. The method of item 3, wherein the method further comprising: receiving, at the receiver, a second signal transmitted from the transmitter; generating, at the receiver, a second signal matrix based on the second signal ; calculating a corrected signal matrix by multiplying second signal matrix and the stored correction matrix.
Item 5. The method of item 1, further comprising: determining if the value of the magnitude that is least of a residual matrix is below a predetermined threshold; and
in response to determining that the value of the magnitude that is least of a residual matrix is below a predetermined threshold, not identifying a modified signal matrix, from the plurality of modified signal matrices, that has the least magnitude from the plurality of calculated magnitudes.
Item 6. The method of item 1, further comprising: determining if the value of the ratio of the magnitude that is least of a residual matrix to the magnitude that is second least of a residual matrix is less than a threshold value; and in response to determining that the value is second least of a residual matrix is less than a threshold value, not identifying a modified signal matrix of the plurality of modified signal matrices that have the least magnitude from the plurality of calculated magnitudes.
Item 7. The method of item 1, wherein steps (d), (f), and (g) can be performed in a sequential order for each correction matrix.
Item 8. The method of item 1, wherein steps (d), (f), and (g) can be performed in parallel for each correction matrix.
Item 9. The method of item 1, wherein steps (d), (f), and (g) can be performed in any combination of sequentially and in parallel for each correction matrix.
Item 10. The method of item 1, wherein the plurality of correction matrices is associated with rotations over each of a transmitter x-axis, y-axis, and z-axis, and an identity matrix.
Item 11. The method of item 1, wherein steps (d), (e), (f), (g), and (h) are performed at any of the receiver, the transmitter, or a host computer.
Item 12. The method of item 11, wherein the corrected position and orientation data is transmitted to one of the receiver, the transmitter, or the host computer that does not perform steps (c), (d), (e), (f), (g), and (h).
Item 13. The method of item 1, wherein the transmitter and receiver together form a system selected from a group consisting of one of an augmented reality system, mixed reality system, assisted reality system, and virtual reality system.
Item 14. The method of item 1, wherein, the transmitter and receiver are positioned on an object.
Item 15. The method of item 1, wherein, the transmitter and receiver are body sensors positioned on the user.
Item 16. The method of item 15, wherein the body sensors are positioned at a predefined pose of the user’s body.
Item 17. The method of item 15, wherein the body sensors are worn on the hand, arm, foot, leg, neck, back, waist, or hip of the user’s body.
Item 18. The method of item 1, further comprising rendering a virtual body part of the user at a location in a display of a head mounted display, wherein the virtual body part is associated with a body sensor, from the body sensors positioned on the user, and the rendering is performed if the location of the body sensor is in a field of view of the user.
Item 19. A system comprising: a transmitter and a receiver, wherein the receiver is in communication with the transmitter, and the transmitter and receiver together form an electromagnetic tracking system; and processing circuitry configured to automatically determine relative orientation between the transmitter and the receiver in a system, wherein the processing circuitry is configured to:
(a) measure, at the transmitter and receiver, inertial measurement unit (IMU) data;
(b) receive, at the receiver, a signal transmitted from the transmitter;
(c) generate, at the receiver, a signal matrix based on the received signal;
(d) determine a plurality of modified signal matrices based on multiplying each of a plurality of correction matrices and the signal matrix;
(e) generate a target signal matrix based on a set of orientation coordinates optimized by the IMU data;
(f) determine a plurality of residual signal matrices based on calculating a difference between each of the plurality of modified signal matrices and the target signal matrix;
(g) calculate a plurality of magnitudes corresponding to each of the plurality of residual signal matrices; and
(h) identify a modified signal matrix, from the plurality of modified signal matrices, that has the least magnitude from the plurality of calculated magnitudes.
Item 20. The system of item 19, wherein the processing circuitry is further configured to: generate the corrected position and orientation information of the receiver relative to the transmitter from the identified modified signal matrix.
Item 21. The system of item 19, wherein the processing circuitry is further configured to: store the correction matrix associated with the least magnitude of the plurality of calculated magnitudes.
Item 22. The system of item 21, wherein the processing circuitry is further configured to: receive, at the receiver, a second signal transmitted from the transmitter; generate, at the receiver, a second signal matrix based on the second signal; calculate a corrected signal matrix by multiplying second signal matrix and the stored correction matrix.
Item 23. The system of item 19, wherein the processing circuitry is further configured to: determine if the value of the magnitude that is least of a residual matrix is below a predetermined threshold; and in response to determining that the value of the magnitude that is least of a residual matrix is below a predetermined threshold, not identify a modified signal matrix, from the plurality of modified signal matrices, that has the least magnitude from the plurality of calculated magnitudes.
Item 24. The system of item 19, wherein the processing circuitry is further configured to: determine if the value of the ratio of the magnitude that is least of a residual matrix to the magnitude that is second least of a residual matrix is less than a threshold value; and in response to determining that the value is second least of a residual matrix is less than a threshold value, not identify a modified signal matrix of the plurality of
modified signal matrices that have the least magnitude from the plurality of calculated magnitudes.
Item 25. The system of item 19, wherein the processing circuitry performs steps (d), (f), and (g) in a sequential order for each correction matrix.
Item 26. The system of item 19, wherein the processing circuitry performs steps (d), (f), and (g) in parallel for each correction matrix.
Item 27. The system of item 19, wherein the processing circuitry performs steps (d), (f), and (g) in any combination of sequentially and in parallel for each correction matrix.
Item 28. The system of item 19, wherein the plurality of correction matrices is associated with rotations over each of a transmitter x-axis, y-axis, and z-axis, and an identity matrix.
Item 29. The system of item 19, wherein steps (d), (e), (f), (g), and (h) are performed at processing circuitry located in any of the receiver, the transmitter, or a host computer.
Item 30. The system of item 29, wherein the corrected position and orientation data is transmitted to one of the receiver, the transmitter, or the host computer that does not contain the processing circuitry that performs steps (c), (d), (e), (f), (g), and (h).
Item 31. The system of item 19, wherein the transmitter and receiver together form a system selected from a group consisting of one of an augmented reality system, mixed reality system, assisted reality system, and virtual reality system.
Item 32. The system of item 19, wherein, the transmitter and receiver are positioned on an object.
Item 33. The system of item 19, wherein, the transmitter and receiver are body sensors positioned on the user.
Item 34. The system of item 33, wherein the body sensors are positioned at a predefined pose of the user’s body.
Item 35. The system of item 33, wherein the body sensors are worn on the hand, arm, foot, leg, neck, back, waist, or hip of the user’s body.
Item 36. The system of item 19, wherein the processing circuitry is further configured to: render a virtual body part of the user at a location in a display of a head mounted display, wherein the virtual body part is associated with a body sensor, from
the body sensors positioned on the user, and the rendering is performed if the location of the body sensor is in a field of view of the user.
Item 37. A method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising: receiving, at a processor, the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating, by the processor, a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating, by the processor, a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generating, by the processor, a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices; generating, by the processor, a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determining, by the processor, a residual error of each of the calibrated, rotated SigMats; and selecting, by the processor, the calibrated, rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter.
Item 38. The method of item 37, further comprising: determining, by the processor, the calibrated, rotated SigMat having a next lowest residual error;
determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
Item 39. The method of item 38, wherein the predefined sync threshold is 0.2.
Item 40. The method of item 38, wherein the predefined sync value ratio is 0.5.
Item 41. An automatically synchronizing magnetic tracking system for properly determining a position and orientation of a receiver relative to a transmitter, comprising: a transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU); receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU); and a processor configured to: receive the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generate a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generate a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generate a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices; generate a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determine a residual error of each of the calibrated, rotated SigMats; and
select the rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter.
Item 42. The system of item 41 wherein the processor is further configured to: determine the calibrated, rotated SigMat having a next lowest residual error; determine that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determine that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio. Item 43. The system of item 42, wherein the predefined sync threshold is 0.2.
Item 44. The system of item 42, wherein the predefined sync value ratio is 0.5.
Item 45. A non-transitory computer readable storage medium having embodied thereon instructions for causing a computing device to execute a method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising: receiving the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generating a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices;
generating a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determining a residual error of each of the calibrated, rotated SigMats; and selecting the calibrated, rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter.
Item 46. The non-transitory computer readable storage medium of item 9, the method further comprising: determining the calibrated, rotated SigMat having a next lowest residual error; determining that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
Item 47. The non-transitory computer readable storage medium of item 46, wherein the predefined sync threshold is 0.2.
Item 48. The non-transitory computer readable storage medium of item 46, wherein the predefined sync value ratio is 0.5.
Claims
1. A method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising: receiving, at a processor, the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generating, by the processor, a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating, by the processor, a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generating, by the processor, a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices; generating, by the processor, a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determining, by the processor, a residual error of each of the calibrated, rotated SigMats; and selecting, by the processor, the calibrated, rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter.
25
2. The method of claim 1, further comprising: determining, by the processor, the calibrated, rotated SigMat having a next lowest residual error; determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining, by the processor, that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
3. The method of claim 2, wherein the predefined sync threshold is 0.2.
4. The method of claim 2, wherein the predefined sync value ratio is 0.5.
5. An automatically synchronizing magnetic tracking system for properly determining a position and orientation of a receiver relative to a transmitter, comprising: a transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU); receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU); and a processor configured to: receive the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter; generate a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generate a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generate a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices;
generate a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determine a residual error of each of the calibrated, rotated SigMats; and select the rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter.
6. The system of claim 5 wherein the processor is further configured to: determine the calibrated, rotated SigMat having a next lowest residual error; determine that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determine that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
7. The system of claim 6, wherein the predefined sync threshold is 0.2.
8. The system of claim 6, wherein the predefined sync value ratio is 0.5.
9. A non-transitory computer readable storage medium having embodied thereon instructions for causing a computing device to execute a method of automatically synchronizing a transmitter and receiver in a magnetic tracking system to properly determine a position and orientation of the receiver relative to the transmitter, the transmitter comprising a plurality of source magnetic coils each configured to generate a magnetic field and a transmitter inertial measurement unit (IMU), and the receiver comprising a plurality of sensor magnetic coils configured to sense the magnetic fields and to generate a raw signal matrix (SigMat) representing the position and orientation of the receiver relative to the transmitter and a receiver inertial measurement unit (IMU), the method comprising: receiving the raw SigMat from the receiver, receiver IMU acceleration data from the receiver, receiver IMU angular velocity data from the receiver, transmitter IMU acceleration data from the transmitter, and transmitter IMU angular velocity data from the transmitter;
generating a global orientation of the receiver from the receiver IMU acceleration data and the receiver IMU angular velocity data; generating a global orientation of the transmitter from the transmitter IMU acceleration data and the transmitter IMU angular velocity data; generating a set of rotated SigMats by multiplying the raw SigMat by each of four sync correction matrices; generating a set of calibrated, rotated SigMats from the rotated SigMats by applying orthogonalization gain matrices for the receiver sensor magnetic coils and the transmitter source magnetic coils to the rotated SigMats; determining a residual error of each of the calibrated, rotated SigMats; and selecting the calibrated, rotated SigMat having a lowest residual error as the correct SigMat to be used for synchronization of the receiver relative to the transmitter.
10. The non-transitory computer readable storage medium of claim 9, the method further comprising: determining the calibrated, rotated SigMat having a next lowest residual error; determining that the residual error of the calibrated, rotated SigMat having the lowest residual error is less than a predefined sync threshold; and determining that the residual error of the calibrated, rotated SigMat having the lowest residual error divided by the residual error of the calibrated, rotated SigMat having the next lowest residual error is greater than a predefined sync value ratio.
11. The non-transitory computer readable storage medium of claim 10, wherein the predefined sync threshold is 0.2.
12. The non-transitory computer readable storage medium of claim 10, wherein the predefined sync value ratio is 0.5.
28
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163245125P | 2021-09-16 | 2021-09-16 | |
US63/245,125 | 2021-09-16 | ||
US202163277748P | 2021-11-10 | 2021-11-10 | |
US63/277,748 | 2021-11-10 | ||
US17/728,094 | 2022-04-25 | ||
US17/728,094 US20230078316A1 (en) | 2021-09-16 | 2022-04-25 | Automatically synchronizing a transmitter and receiver in a magnetic tracking system using information from an inertial measurement unit |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023043919A1 true WO2023043919A1 (en) | 2023-03-23 |
Family
ID=83689101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2022/043656 WO2023043919A1 (en) | 2021-09-16 | 2022-09-15 | Automatically synchronizing a transmitter and receiver in a magnetic tracking system using information from an inertial measurement unit |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023043919A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4737794A (en) | 1985-12-09 | 1988-04-12 | Mcdonnell Douglas Corporation | Method and apparatus for determining remote object orientation and position |
US20160011013A1 (en) * | 2014-07-11 | 2016-01-14 | Sixense Entertainment, Inc. | Method And Apparatus For Synchronizing a Transmitter and Receiver in a Magnetic Tracking System |
US20190353745A1 (en) | 2018-05-17 | 2019-11-21 | Sixense Enterprises Inc. | Method And Apparatus For Reducing Magnetic Tracking Error |
US20200158487A1 (en) * | 2018-11-19 | 2020-05-21 | Sixense Enterprises Inc. | Method And Apparatus For Phase-Based Synchronization in Magnetic Tracking Systems |
-
2022
- 2022-09-15 WO PCT/US2022/043656 patent/WO2023043919A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4737794A (en) | 1985-12-09 | 1988-04-12 | Mcdonnell Douglas Corporation | Method and apparatus for determining remote object orientation and position |
US20160011013A1 (en) * | 2014-07-11 | 2016-01-14 | Sixense Entertainment, Inc. | Method And Apparatus For Synchronizing a Transmitter and Receiver in a Magnetic Tracking System |
US20190353745A1 (en) | 2018-05-17 | 2019-11-21 | Sixense Enterprises Inc. | Method And Apparatus For Reducing Magnetic Tracking Error |
US20200158487A1 (en) * | 2018-11-19 | 2020-05-21 | Sixense Enterprises Inc. | Method And Apparatus For Phase-Based Synchronization in Magnetic Tracking Systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10378921B2 (en) | Method and apparatus for correcting magnetic tracking error with inertial measurement | |
EP3309751B1 (en) | Image processing device, method, and program | |
US11486958B2 (en) | Method and apparatus for reducing magnetic tracking error | |
KR102560732B1 (en) | How to calibrate a magnetometer | |
EP3411725B1 (en) | A method and device for calibration of a three-axis magnetometer | |
CN102981140B (en) | For utilizing the method and apparatus of the position of magnetic-field measurement terminal | |
EP2434256B1 (en) | Camera and inertial measurement unit integration with navigation data feedback for feature tracking | |
JP5688793B2 (en) | Hand-held geodetic device, computer-implemented method and computer-readable storage medium for determining the location of a point of interest | |
WO2016041088A1 (en) | System and method for tracking wearable peripherals in augmented reality and virtual reality applications | |
WO2014110669A1 (en) | Method and apparatus for determining a relative orientation of points on a rigid body | |
JP2012047746A (en) | Handheld global positioning system device | |
CA3073775C (en) | Tracking an object in an electromagnetic field | |
CN110954134B (en) | Gyro offset correction method, correction system, electronic device, and storage medium | |
KR20200091709A (en) | Electronic apparatus and control method thereof | |
WO2016203777A1 (en) | Sensor calibration method and system | |
US20230078316A1 (en) | Automatically synchronizing a transmitter and receiver in a magnetic tracking system using information from an inertial measurement unit | |
TW200905165A (en) | Low-cost electronic compass with 2D-magnetometer | |
WO2023043919A1 (en) | Automatically synchronizing a transmitter and receiver in a magnetic tracking system using information from an inertial measurement unit | |
US10197402B2 (en) | Travel direction information output apparatus, map matching apparatus, travel direction information output method, and computer readable medium | |
US10564733B2 (en) | Operating method of tracking system, controller, tracking system, and non-transitory computer readable storage medium | |
CN115844381A (en) | Human body action recognition method and device, electronic equipment and storage medium | |
CN108627157A (en) | A kind of head based on three-dimensional marking plate shows localization method, device and three-dimensional marking plate | |
Fong et al. | Computer vision centric hybrid tracking for augmented reality in outdoor urban environments | |
JP3712847B2 (en) | Three-dimensional shape measurement method, three-dimensional shape measurement device, and posture detection device for imaging means | |
CN117570999B (en) | Attitude fusion method, system and computer readable medium for multiple star sensors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22786627 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22786627 Country of ref document: EP Kind code of ref document: A1 |