Correction of distortions
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- NORTHERN DIGITAL
- Filing Date
- 2020-04-01
- Publication Date
- 2026-07-09
AI Technical Summary
Electromagnetic tracking systems in augmented and virtual reality systems suffer from positional inaccuracies due to incorrect calibration and environmental distortions caused by metallic and magnetic objects, leading to erroneous position and orientation measurements.
The system employs techniques to determine and compensate for positional errors by using bias terms to correct magnetic sensor measurements, incorporating inertial measurement units and optical systems to account for distortions, and operating in multiple frequency modes to minimize environmental interference.
Accurate position and orientation measurements are achieved by compensating for distortions, ensuring reliable tracking of devices in electromagnetic tracking systems.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL AREA
[0001] This disclosure relates to the correction of distortions, for example, the correction of distortions in an electromagnetic tracking system (EMT system). BACKGROUND
[0002] Augmented reality (AR) and virtual reality (VR) systems can use electromagnetic tracking (EMT) systems to aid in the localization of devices in various contexts (e.g., gaming, medicine, etc.). Such systems use a magnetic transmitter near a magnetic sensor, allowing the sensor and transmitter to be positioned spatially relative to each other. Incorrect calibration of the transmitter relative to the sensor (or vice versa) can cause the EMT system to report incorrect positions for either the sensor or the transmitter. SUMMARY
[0003] Electromagnetic tracking systems (EMT systems), including those used as part of an augmented reality (AR) and / or virtual reality (VR) system, may employ one or more techniques to improve the determination of the position and orientation of a magnetic sensor relative to a magnetic transmitter. For example, one or more techniques may be used to reduce / eliminate positional errors caused by distortions in the tracking environment (e.g., due to the presence of a metallic and / or magnetic object on or near the tracking environment).
[0004] To ensure that the transmitter and sensor can provide the user with accurate position and orientation measurements, such distortions in the system can be compensated for. For example, one or more terms indicating distortion in the tracking environment (e.g., a distortion term) can be determined, and future measurements provided by the sensor can be corrected using this one or more distortion terms.
[0005] In general, a system in one aspect includes a magnetic transmitter configured to generate magnetic fields; a magnetic sensor configured to generate signals based on properties of the magnetic fields received by the magnetic sensor; and one or more computer systems configured to cause the magnetic transmitter to generate a first plurality of magnetic fields at a first frequency; receive a first plurality of signals from the magnetic sensor; determine data indicating the position and orientation of the magnetic sensor at a first position; and, based on the first plurality of signals and the data indicating the position and orientation of the magnetic sensor at the first position, determine a distortion term corresponding to a first position of the magnetic sensor.Causing the magnetic transmitter to generate a third set of magnetic fields at the first frequency; receiving a third set of signals from the magnetic sensor; and, based on the third set of signals received from the magnetic sensor and the distortion term, determining a second position and orientation of the magnetic sensor relative to the magnetic transmitter, where the first frequency is greater than the second frequency.
[0006] Implementations can include one or more of the following features in any combination.
[0007] In some implementations, determining data indicating the position and orientation of the magnetic sensor at a first position of the magnetic sensor involves: causing the magnetic transmitter to generate a second set of magnetic fields at a second frequency; and receiving a second set of signals from the magnetic sensor.
[0008] In some implementations, determining data indicating the position and orientation of the magnetic sensor at a first position involves: obtaining optical data relating to the position and orientation of the magnetic sensor at a first position using an optical system; and determining the data indicating the position and orientation of the magnetic sensor at the first position based on the optical data.
[0009] In some implementations, the first and second sets of magnetic fields are generated when the magnetic transmitter remains in a first position and orientation, and the first and second sets of signals are generated by the magnetic sensor while the magnetic sensor remains in the first position and orientation.
[0010] In some implementations, the first set of signals is represented as the first 3×3 data matrix, the second set of signals is represented as the second 3×3 data matrix, and the distortion term is represented as a 3×3 data matrix.
[0011] In some implementations, the 3×3 data matrix corresponding to the distortion term is calculated at least partially by subtracting the second 3×3 data matrix from the first 3×3 data matrix.
[0012] In some implementations, the magnetic transmitter and the magnetic sensor are each associated with an inertial measurement unit (IMU) that is configured to provide inertial data.
[0013] In some implementations, the 3×3 data matrix corresponding to the distortion term is at least partially calculated by multiplying the difference between the first 3×3 data matrix and the second 3×3 data matrix by inertia data of the magnetic transmitter and inertia data of the magnetic sensor, obtained while the magnetic transmitter and magnetic sensor remain in a first position and orientation.
[0014] In some implementations, multiplying the difference between the first 3×3 data matrix and the second 3×3 data matrix by the inertial data, while the magnetic transmitter and magnetic sensor remain in their respective initial positions and orientations, causes the 3×3 data matrix corresponding to the distortion term to be rotated into an initial reference frame corresponding to the initial orientation of the magnetic transmitter and the initial orientation of the magnetic sensor.
[0015] In some implementations, the 3×3 data matrix corresponding to the distortion term at the initial reference frame is multiplied by inertia data of the magnetic transmitter and inertia data of the magnetic sensor when the magnetic transmitter is at a second position and orientation and the magnetic sensor is at a second reference frame, where the distortion term at the second reference frame is represented as a 3×3 data matrix.
[0016] In some implementations, multiplying the 3×3 data matrix corresponding to the distortion term at the initial reference frame with the inertial data obtained when the magnetic transmitter and magnetic sensor are in their respective second positions and orientations results in the corresponding 3×3 data matrix corresponding to the distortion term at the initial reference frame to be rotated into the second reference frame, where the 3×3 data matrix corresponding to the distortion term at the second reference frame corresponds to the second orientation of the magnetic transmitter and the second orientation of the magnetic sensor.
[0017] In some implementations, the third set of signals is represented as the third 3×3 data matrix, and the third 3×3 data matrix corresponds to the second reference frame.
[0018] In some implementations, the third set of signals includes distortions due to the presence of one or more conductive or magnetic objects on or near a tracking environment of the system, and a third position and orientation of the magnetic sensor relative to the magnetic transmitter, corresponding to the third set of signals, includes inaccuracies in one or more dimensions.
[0019] In some implementations, the one or more computer systems are further configured to: determine an undistorted term corresponding to the second position and orientation of the magnetic sensor based on the third 3×3 data matrix corresponding to the second reference frame and the 3×3 data matrix corresponding to the distortion term at the second reference frame; and determine the second position and orientation of the magnetic sensor relative to the magnetic transmitter based on the undistorted term.
[0020] In some implementations, the unbiased term is determined by subtracting the third 3×3 data matrix corresponding to the second reference frame from the 3×3 data matrix corresponding to the bias term at the second reference frame.
[0021] In some implementations, the undistorted term corresponds to a correct position and orientation of the magnetic sensor, and the second position and orientation of the magnetic sensor represents the correct position and orientation of the magnetic sensor.
[0022] In some implementations, the second position and orientation of the magnetic sensor does not include inaccuracies that would otherwise be caused by distortions in the third set of signals due to the presence of one or more conductive or magnetic objects on or near a tracking environment of the system if the undistorted term were not taken into account.
[0023] In some implementations, the first frequency is 30 kHz or more.
[0024] In some implementations, the second frequency is 1.1 kHz or less.
[0025] In some implementations, the second frequency is 100 Hz.
[0026] In general, a method according to another viewpoint includes: causing a magnetic transmitter to generate a first plurality of magnetic fields at a first frequency; receiving, from a magnetic sensor, a first plurality of signals; determining data indicating the position and orientation of the magnetic sensor at a first position; determining, based on the first plurality of signals and the data indicating the position and orientation of the magnetic sensor at the first position, a distortion term corresponding to a first position of the magnetic sensor; causing the magnetic transmitter to generate a third plurality of magnetic fields at the first frequency; and receiving, from the magnetic sensor, a third plurality of signals.and based on the third set of signals received by the magnetic sensor and the distortion term, determining a second position and orientation of the magnetic sensor relative to the magnetic transmitter, where the first frequency is greater than the second frequency.
[0027] In general, in another aspect, one or more non-volatile, computer-readable media storage instructions can be executed to cause a computer device to perform operations that include: causing a magnetic transmitter to generate a first plurality of magnetic fields at a first frequency; receiving, from a magnetic sensor, a first plurality of signals; determining data indicating the position and orientation of the magnetic sensor at a first position; determining, based on the first plurality of signals and the data indicating the position and orientation of the magnetic sensor at the first position, a distortion term corresponding to a first position of the magnetic sensor; causing the magnetic transmitter to generate a third plurality of magnetic fields at the first frequency; and receiving, from the magnetic sensor, a third plurality of signals.and based on the third set of signals received by the magnetic sensor and the distortion term, determining a second position and orientation of the magnetic sensor relative to the magnetic transmitter, where the first frequency is greater than the second frequency.
[0028] Advantages of the systems and techniques described herein include the use of multiple operating modes for the system. For example, the system may be configured in a first operating mode (e.g., a normal or typical operating mode) to operate at a relatively high frequency (e.g., 30 kHz). Such a frequency may offer one or more advantages, such as improved speed, better suitability for customers / applications, etc. However, the first operating mode may be prone to errors. As such, the system may also be configured to operate in a second operating mode (e.g., a specialized operating mode). The second operating mode may be used occasionally when circumstances warrant it (e.g., when the magnetic sensor and magnetic transmitter temporarily cease movement). In the second operating mode, the system may be configured to operate at a comparatively lower frequency (e.g.,100 Hz), which may not be susceptible to the errors mentioned above, but may include one or more drawbacks that make it unsuitable for normal / typical operation (e.g., too low). Information obtained during operation in the second mode at the second frequency, where the effects of potential distortions in the tracking environment are reduced or minimized, can be used to correct measurements obtained when the system operates in the first mode at the first frequency. For example, one or more distortion terms can be determined and used to compensate for distortions in the tracking environment, thereby achieving an accurate position and orientation of the magnetic sensor relative to the magnetic transmitter to be provided while the system is operating in the first mode.
[0029] In some implementations, the system can be configured to use one or more other techniques for obtaining measurements that are not affected by environmental distortions, instead of operating in a second mode. For example, an optical system (among others) can be used to determine a precise position of the sensor and / or transmitter based on optical data. In this way, the sensor position determined based on the optical data can be taken as truth data, indicating the actual position of the sensor.
[0030] In some implementations, the tracking environment can be mapped before the sensor's position is determined. For example, distortion terms corresponding to different locations within the tracking environment can be determined in advance. When a true sensor position needs to be determined, a previously obtained distortion term corresponding to the sensor's location can be used to calculate a precise sensor position. This eliminates the need to determine distortion terms in real time.
[0031] In some implementations, once a distortion term is identified, either the transmitter or the sensor (e.g., the receiver) can be "rotated" to a different position. In other words, the properties of the fields generated by the transmitter or the data provided by the sensor can be modified to correspond to a different position than the current position of the transmitter and / or sensor. In this way, the transmitter and / or sensor is simulated to be rotated.
[0032] The details of one or more embodiments are given in the accompanying drawings and the following description. Other features, objects, and advantages will become apparent from the description, the drawings, and the claims. List of characters Fig. Figure 1 shows an example electromagnetic tracking system (EMT system). Fig. Figure 2 shows another example of the EMT system from Fig. 1 with the sensor and the transmitter in a starting position and orientation. Fig. Figure 3 shows another example of the EMT system from Fig. 2 with the sensor and transmitter in a second position and orientation. Fig. Figure 4 shows a flowchart of an exemplary process for determining a distortion term and for determining a second position of a sensor relative to a transmitter. Fig. Figure 5 shows an example of a computer device and a mobile computer device that can be used to implement the techniques described herein.
[0033] Identical reference symbols in the different drawings indicate the same elements. DETAILED DESCRIPTION
[0034] An electromagnetic tracking system (EMT system) can be used in gaming and / or surgical settings to track devices (e.g., gaming controllers, head-mounted displays, medical devices, robotic arms, etc.), thus informing the user of the system of their respective three-dimensional positions and orientations. AR and VR systems also use EMT systems to track the head, hand, and body, for example, to synchronize the user's movement with the AR / VR content. Such systems use a magnetic transmitter near a magnetic sensor to determine the sensor's position and orientation (P&O) relative to the transmitter.
[0035] Such systems can employ one or more techniques to improve the determination of the sensor's position and orientation (P&O) relative to the transmitter. For example, one or more techniques can be used to reduce or eliminate position errors caused by distortions in the tracking environment. For instance, the EMT system may be sensitive to metallic objects, which can manifest as distortions in the tracking environment (e.g., distortions of the magnetic fields generated by the transmitter and / or detected by the sensor). The distortion may include conductive distortion and ferromagnetic distortion. Conductive distortions are generally caused by eddy currents induced in conductive objects by alternating magnetic fields (e.g., those generated by the transmitter). These eddy currents generate additional magnetic fields that are indistinguishable from those generated by the transmitter.These additional fields can cause the EMT system to... 100 Erroneous P&O results were reported. Ferromagnetic distortion can be caused by magnetic reluctance of materials at or near the tracking environment. 106 This is caused by magnetic reluctance, which "bends" the magnetic fields out of their normal geometry. Such distortions cause the magnetic fields to deviate from the magnetic field model on which a P&O algorithm is based, resulting in erroneous P&O results.
[0036] To ensure that the transmitter and sensor can provide the user with accurate P&O measurements, such distortions in the system can be corrected; for example, distortions can be compensated by determining one or more terms that indicate a distortion in the tracking environment (e.g., a distortion term), and using the one or more distortion terms to correct future measurements provided by the sensor.
[0037] In some implementations, a distortion term for an initially sampled location (e.g., an initial P&O of the sensor) can be determined and used to correct a P&O measurement at a subsequent sampled location (e.g., a subsequent P&O of the sensor) close to the initially sampled location. The distance between the initial and subsequent locations may depend on the distortion gradients at the sampled locations. An undistorted (e.g., "clean") position output from the sensor at the initially sampled location can be acquired using one or more low-distortion trackers (e.g., trackers that are minimally affected by distortion or trackers that are not susceptible to distortion).In some implementations, the tracker can be configured with low distortion to operate the system at a relatively low frequency, thereby minimizing or eliminating the effects of distortion in the tracking volume. This establishes a "reliable vector" (e.g., a true point and object) of the sensor.
[0038] Alternatively or additionally, the undistorted position output of the sensor at the initially sampled location can be acquired using one or more other techniques (e.g., one or more other "low-distortion trackers") that are minimally or not at all susceptible to distortion. For example, in some implementations, an optical system that includes one or more cameras mounted on the sensor, the transmitter, and / or at one or more locations on or near the tracking volume can be used to determine the reliable vector that indicates the sensor's true position and orientation (P&O) based on visual data. In some implementations, other types of low-distortion trackers can be used to compensate for the sensor's output, such as infrared tracking, acoustic tracking, or another P&O tracking method that is not, or less, susceptible to distortion effects from surrounding metal (e.g., metal).compared to the normal operating mode, which uses high-frequency EM tracking as described herein), to name a few.
[0039] In some implementations, distortion terms can be determined for a variety of locations within a tracking volume during a mapping or initialization routine. For example, distortion terms indicating ambient distortion throughout the tracking volume can be obtained by moving the sensor through the tracking volume and recording the sensor's P&O output (e.g., distorted P&O measurements). A corresponding clean P&O measurement, indicating the sensor's true P&O, can be determined for the various distorted P&O measurements, and a corresponding distortion term can be determined for a specific location within the tracking volume. The clean P&O measurements (e.g., corresponding to reliable vectors) can be used with a low-distortion tracker (e.g., the optical system, low-frequency mode, etc.).The distortion terms can be determined as briefly described above and in more detail below. In this way, distortion terms can be correlated with various clean positions within the tracking volume, and in some implementations, additional distortion terms for other locations within the tracking volume (e.g., locations not specifically sampled) can be determined using one or more extrapolation techniques. The distortion terms mapped over the entire tracking volume can be used to determine an undistorted point of view (P&O) of the sensor when, for example, the sensor is positioned at or near a location corresponding to a distortion term, as described in more detail below.
[0040] Fig. Figure 1 shows an example of an EMT system. 100 , which can be used as part of an AR / VR system. The EMT system 100 includes at least one magnetic sensor 112, an orientation measurement device (OMD) 122 , a magnetic transmitter 114 and another OMD 124 one. The OMDs 122 , 124 are relatively insensitive (or, for example, not sensitive) to metal in the environment. Therefore, the OMDs can 122 , 124 used to ensure the clean alignment of the sensor 112 and / or the sender 114 to determine. In some implementations, the OMDs can be determined. 122 , 124 include one or more inertial measurement units (IMUs) and / or an optical system that enables sensor orientation 112 relative to the transmitter 114 can measure, or vice versa. In some implementations, the sensor 112 and the OMD 122 in a head-mounted display (HMD) 102 built-in, and the magnetic transmitters 114 and OMD 124are in a control system 104 built-in. The EMT system 100 This also includes sensor processing. 142 and the transmitter processing 144 one. The sensor processing 142 and the transmitter processing 144 can either use the HMD separately or together 102 and / or the control 104 They can be located within the EMT system or, alternatively, be arranged on a separate electronic device (e.g., a computer system). 100 It can also be a tracker with low distortion. 132 Include. The low-distortion tracker 132 It is relatively insensitive (or, for example, not sensitive) to metal in the environment. Therefore, as with the OMDs described above, 122 , 124 , the low-distortion tracker 132 used to ensure the clean P&O of the sensor 112 and / or the sender 114to determine. In some implementations, the tracker can be used with low distortion. 132 include an optical system with one or more cameras mounted on the HMD 102 and / or at the control unit 104 Such an optical system can be used instead of or in addition to a low-frequency operating mode that is not susceptible to environmental distortions.
[0041] In general, the EMT system 100 Configured to compensate for distortions in or around a tracking environment. For example, a "distorted" P&O output from the sensor 112 Initial settings may contain errors due to environmental distortions. A "clean" P&O of the sensor. 112The initial position can be determined using a technique that is not susceptible to environmental distortions. For example, an optical system or a low-frequency operating mode can be used to determine the sensor's clean / true P&O. 112 (e.g., sometimes referred to as a reliable vector), an example of which is described in more detail below. Using both the distorted P&O and the clean P&O of the sensor. 112 At the initial position, a distortion term can be determined which corresponds to the initial position. If the sensor 112 If the sensor is subsequently positioned in a new position, the distortion term corresponding to the initial position can be used to calculate a distorted P&O output from the sensor. 112 to correct in the new position.
[0042] While two specific low-distortion trackers are described here, it is understood that other low-distortion trackers can be used. One of the functions of a low-distortion tracker is to develop the reliable vector that represents the clean / true P&O of the sensor. 112 based on one or more measurements. The reliable vector represents the true position and orientation of the sensor. 112 Therefore, any technique for determining the true position and orientation of the sensor can be used. 112 in the EMT system 100 for the purposes described here.
[0043] In some implementations, instead of or in addition to determining distortion terms essentially in real time, as described above, the tracking environment can be pre-mapped. This allows distortion terms, which indicate environmental distortions corresponding to different positions within the tracking environment, to be determined as part of an initialization routine, and such distortion terms can then be applied to distorted P&O outputs from the sensor. 112 to be applied to ensure a clean P&O of the sensor 112 to provide. Such an implementation is described in more detail below.
[0044] Fig. Figure 2 shows an example of the EMT system. 100 from Fig. 1. The EMT system 100 includes at least one head-mounted display (HMD) 102 one that uses the magnetic sensor 112 and the OMD 122 includes, and a control 104 , which the magnetic transmitter114 and the OMD 124 contains.
[0045] In some examples, a VR system uses computer technology to simulate the user's physical presence in a virtual or imaginary environment. VR systems can deliver three-dimensional images and / or sounds through the HMD (head-mounted display). 102 and tactile sensations through haptic devices in the control system 104or create wearable devices to provide an interactive and immersive computer-generated sensory experience. In contrast, AR systems can overlay computer-generated sensory input onto the user's live experience to enhance the user's perception of reality. For example, AR systems can provide sound, graphics, and / or relevant information (e.g., GPS data for the user during a navigation process). Mixed reality (MR) systems—sometimes called hybrid reality systems—can merge real and virtual worlds to create new environments and visualizations where physical and digital objects coexist and interact in real time.
[0046] The HMD 102 and the control 104are configured to track the position (e.g., in x, y, and z) and orientation (e.g., in azimuth, altitude, and roll) in three-dimensional space relative to each other. For example, the transmitter 114 configured to use the sensor 112 to track (e.g., relative to a frame of reference defined by the position and orientation of the transmitter) 114 is defined), and / or the sensor 112 is configured to send the transmitter 114 to track (e.g. relative to a reference frame defined by the position and orientation of the sensor) 112 is defined). In some implementations, the system 100 configured to determine the position and orientation (e.g., the P&O) of the sensor 112 and / or the sender 114 in a tracking environment 106 to track the EMT system. In this way, the P&O of the HMD can be monitored. 102 and / or the control 104relative to each other and relative to one through the EMT system 100 The defined coordinate system can be tracked. For example, the HMD 102 and the control 104 They can be used to perform head, hand, and / or body tracking, for example, to synchronize the user's movement with the AR / VR content. While the tracking environment 106 It should be understood that the tracking environment is represented as a defined space. 106 This can be any three-dimensional space, including three-dimensional spaces without boundaries (e.g., large indoor and / or outdoor areas, etc.). The specific sensor 112 and the broadcaster 114 , which are from the EMT system 100 The methods used can be determined by the type of procedure, the measurement performance requirements, etc.
[0047] In some implementations, the sender 114Three orthogonally wound magnetic coils, referred to here as the X, Y, and Z coils, are used. Electric currents flowing through the three coils cause them to generate three orthogonal sinusoidal magnetic fields with a specific frequency (e.g., the same or different frequencies). In some implementations, time division multiplexing (TDM) techniques can also be used. For example, in some implementations, the coils can generate magnetic fields with the same frequency (e.g., 30 kHz) but at non-overlapping times. The sensor 112 It also includes three orthogonally wound magnetic coils, referred to here as the x, y, and z coils. The coils of the sensor... 112 Voltages are induced by magnetic induction in response to the detected magnetic fields. Each coil of the sensor 112generates an electrical signal for each of the magnetic fields emitted by the transmitter's coils. 114 be generated; for example, the x-coil of the sensor generates 112 a first electrical signal in response to that from the X-coil of the transmitter 114 received magnetic field, a second electrical signal in response to the one from the transmitter's Y-coil 114 received magnetic field, and a third electrical signal in response to that from the transmitter's Z-coil 114 Received magnetic field. The y and z coils of the sensor. 112 They also generate electrical signals for each of the transmitter's magnetic fields created by the X, Y, and Z coils. 114 and through the y and z coils of the sensor 112 received.
[0048] As described in more detail below, in some implementations the sender 114It should be configured to use a specific frequency, depending on the mode in which the transmitter is operating. 114 currently working. For example, in a first mode (e.g., during normal operation of the transmitter) 114 , as he is in the EMT system 100 or is implemented in an AR or VR system) the sender 114 It must be configured to generate magnetic fields with a frequency of 30 kHz or higher (e.g., 30 kHz, 34 kHz, etc.). In some implementations, a second mode (e.g., to minimize the effects of potential environmental distortion) may be available for the transmitter. 114 be configured to generate magnetic fields with a frequency of 1.1 kHz or less (e.g. 1.1 kHz, 1 kHz, 100 Hz, etc.).
[0049] The data from the sensor 112 can be represented as a data matrix (e.g., a 3×3 matrix), sometimes called a measurement matrix, and in relation to the sender 114into the P&O (e.g. sometimes referred to as position) of the sensor 112 can be integrated, or vice versa. In this way, the P&O of the sensor is... 112 and the sender 114 measured. An example of a 3×3 signal measurement matrix (e.g., sometimes referred to as an S-matrix) is shown below, where each matrix element represents the sensor signal in the specified coil of the sensor. 112 (x, y, z) by energizing a coil of the transmitter 114 (X, Y, Z) represents, and where the columns represent the direction of travel through the coils of the transmitter. 114 (X, Y, Z) generated signal and the series through the coils of the sensor 112 (x, y, z) generated signals: Measurement matrix = [ X x Y x Z x X y Y y Z y Z z Z z Z z ]
[0050] It is understood that the specific mathematical processes described herein are merely the result of an exemplary technique for determining the position of a sensor relative to a transmitter. The specific mathematical transformations performed may differ, as a person skilled in the art would understand. The exemplary mathematics should not be interpreted as limiting the general inventive concept of using a low-distortion tracker to correct the position of the sensor and / or transmitter at a subsequent sampled location, as described herein.
[0051] The sensor processing ( 142 from Fig. 1) and the transmitter processing ( 144 from Fig. 1), which is in the HMD 102 and / or the control 104 included or separate from the HMD 102 and the control 104They can be arranged, are configured to determine the P&O of the HMD 102 relative to the control 104 and vice versa, based on the characteristics of the sender 114 magnetic fields generated by the sensor and the various 112 generated electrical signals.
[0052] In some implementations, the sensor processing can 142 and the transmitter processing 144 It can be implemented as one or more computer systems. For example, one or more computer systems can be configured to receive data from the sensor. 112 into the P&O of the sensor 112 to integrate. In some implementations, one or more computer systems may include EM sensor processing functions and / or EM transmitter processing functions. In some implementations, one or more computer systems integrated into the HMD may include EM sensor processing functions and / or EM transmitter processing functions. 102 and / or the control 104 (or e.g. the sensor) 112and / or the sender 114 ) are installed, be configured to control the sensor's P&O 112 to determine. In some implementations, the EM sensor processing functionality and the EM transmitter processing functionality can be integrated into a single computer system (e.g., on the HMD 102 / Sensor). 112 , at control unit 104 / transmitter 114 or on a separate computer system). The sensor 112 , the broadcaster 114 and / or the separate computer system can be configured to communicate information with each other (e.g., via a wireless connection, a wired connection, etc.). As described below, a separate computer system can also be configured to monitor the sensor's P&O. 112 and the sender 114 to determine, and such information can be used by the HMD 102 and / or the control 104 be provided.
[0053] The AR / VR system and / or the EMT system 100 One or more techniques can be used to improve the determination of the sensor's P&O. 112 relative to the transmitter 114 use. For example, one or more techniques can be used to reduce / eliminate positional errors caused by distortions in the tracking environment. 106 caused by the EMT system. 100 It may be sensitive to metallic objects, which can manifest as distortion in the tracking environment. 106 can manifest themselves (e.g., distortions of the magnetic fields emitted by the transmitter). 114 generated and / or by the sensor 112 (are detected). The distortion can include conductive distortion and ferromagnetic distortion. Conductive distortions are generally caused by eddy currents in conductive objects due to alternating magnetic fields (e.g., those emitted by the transmitter). 114(are generated). As mentioned above, the eddy currents can generate additional magnetic fields, which differ from those generated by the transmitter. 114 generated, are indistinguishable. These additional fields can cause the EMT system to 100 Erroneous P&O results have been reported. For example, an algorithm for determining the sensor's P&O may fail. 112 , based on sensor signals, a field model of the transmitter 114 The generated magnetic fields are used without additional fields due to eddy currents, and as such, the reported results do not represent an accurate picture of the transmitter's P&O. 114 and / or the sensor 112 ready if distortions are present.
[0054] Ferromagnetic distortion can be caused by magnetic reluctance of materials at or near the tracking environment. 106This is caused by such magnetic reluctance, which "bends" the magnetic fields out of their normal geometry, causing the magnetic fields to deviate from the magnetic field model on which the P&O algorithm is based, thus reporting erroneous results.
[0055] To ensure that the sender 114 and the sensor 112 To provide the user with accurate P&O measurements, such distortions in the EMT system can be avoided. 100 This can be compensated for, for example, by determining one or more terms that eliminate a distortion in the tracking environment. 106 display (e.g., a distortion term), and use the one or more distortion terms to correct future measurements taken by the sensor. 112 A specific distortion term can be assigned to a specific position within the tracking environment. 106correspond. In some implementations, a specific distortion term can correspond to a specific P&O of the sensor. 112 , relative to a specific P&O of the broadcaster 114 , correspond. In some implementations, a specific distortion term can be assigned to a specific position of the sensor. 112 relative to a specific position of the transmitter 114 correspond, and the specific distortion term can be mathematically adjusted to accommodate different sensor orientations. 112 and / or the sender 114 to correspond to the specific position, as described in more detail below.
[0056] In some implementations, the EMT system 100 determine an initial distortion term while the sensor is moving 112 and the broadcaster 114 are in an initial P&O (e.g., an initial reference frame). After that, the sensor can 112 and / or the sender114 move to a second P&O (e.g., a second reference frame). The distortion term obtained at the initial reference frame can be used to determine the distortion from the sensor. 112 to mathematically adjust the provided sensor measurements when the sensor 112 located at the second P&O to ensure an accurate (e.g., correct or "true") position of the sensor 112 relative to the transmitter 114 to provide. In other words, the sensor 112 provided sensor measurements when the sensor 112 in the second P&O, otherwise inaccuracies due to distortions in the tracking environment 106 The distortion term can be representative of such distortions. Thus, the distortion term can be used to remove the effects of such distortions from the sensor signal when the sensor... 112 is located in the second P&O.
[0057] While the EMT system 100 is configured to adjust the sensor's orientation 112 and the sender 114 To determine their relative positions using electromagnetic tracking techniques, the sensor 112 and the broadcaster 114 each an alignment measuring device (OMD) 122 , 124 assigned, which is configured to provide information regarding the orientation of the sensor. 112 and the sender 114 to provide. In some implementations, the OMD 122 , 124 Inertial measurement units (IMUs) configured to provide inertial data to the sensor 112 and the broadcaster 114 correspond. In some implementations that use IMUs, each of the OMDs can be used. 122 , 124 be configured to collect inertial data that the sensor 112 and the broadcaster 114correspond (e.g., are connected to it). In some implementations, the IMUs include one or more accelerometers and / or one or more gyroscopes configured to collect inertial data. The inertial data can be used, among other things, to determine the orientation of the sensor. 112 and the sender 114 to determine. For example, the IMUs can be configured to measure a specific force and / or angular rate that can be used to determine the orientation, direction, velocity, and / or acceleration of the IMU (and, for example, the HMD). 102 and the control 104 ) to determine. In some implementations, the specified velocity and / or acceleration can be used to determine the sensor's position. 112 and the sender 114to support this. For example, the specific speed and / or acceleration can be used to detect a change in the sensor's position. 112 and / or the sender 114 to determine over time. The inertial data can be transferred between one or more of the computer systems described above. For example, in some implementations, the inertial data relating to the sensor can be 112 obtain, wirelessly from the transmitter 114 are provided and vice versa. In some implementations, a separate computer system can handle the exchange of inertial and other data between the sensor and the sensor. 112 and the broadcaster 114 facilitate.
[0058] In some implementations, the OMDs 122 , 124 Instead of IMUs, include an optical system that is used to determine the sensor's orientation. 112 relative to the transmitter 114to determine and vice versa. In this way, the true orientation of the sensor can be determined. 112 and / or the sender 114 determined based on optical data instead of inertial data.
[0059] In some implementations, the sensor 112 Degraded (e.g., inaccurate) data can be generated due to operation in an EM-distorted environment, leading to an inaccurate position output. This document describes EM distortion compensation systems and techniques for determining a "clean" (e.g., undistorted) S-matrix that can be used for the sensor position. 112 is representative. The clean / undistorted S-matrix, which is essential for accurate P&O of the sensor. 112 is representative of any reference frame (i) (e.g., any P&O), can be called S sauberi denoted and calculated according to the following equation (1): S cleani = S reci − S disti , where S recia degraded S-matrix (e.g., due to inaccuracies caused by distortions at or near the tracking environment) 106 ), if the sensor 112 at any reference frame i and S disti a distortion term corresponding to the arbitrary reference frame i. While S reci The systems and techniques described here are designed to measure the distortion matrix S. disti to be found on any reference frame.
[0060] The size of a signal matrix from the sensor 112 It remains constant over arbitrary rotations of rows and columns (e.g., via the Frobenius norm). In the systems and techniques described herein, the rows and columns of the S-matrices correspond to the physical orientations of the sensor. 112 and the sender 114 In some implementations, an S-matrix is obtained when the sensor... 112 and the broadcaster 114The parameters located in an initial reference frame (e.g., an initial reference frame 0) can be used to determine a distortion term at the initial reference frame 0, where the distortion term at the initial reference frame 0 can be used to determine a distortion term at another reference frame (e.g., any reference frame i), and the distortion term at any reference frame i can be used to determine the P&O of the sensor. 112 to determine at any reference frame i (e.g. at a later time relative to a time at which the distortion term is obtained at the initial reference frame 0).
[0061] At the in Fig. The two examples shown are the HMD 102 / Sensor. 112 and the control unit 104 / transmitter 114 at a first reference frame 0. In particular, the HMD 102 / sensor is located 112in an initial reference frame (S P&Oo) and the control 104 / the transmitter 114 in an initial reference frame (T P&Oo). The sensor is located in the initial reference frames S P&Oo and T P&Oo. 112 and the broadcaster 114 each at a first (e.g., initial) position and orientation. In some implementations, the initial reference frame corresponds to a point in time at which the sensor 112 and the broadcaster 114 for a period of time (e.g., as determined by the OMDs) 122 , 124 have stopped or substantially stopped the movement (determined).
[0062] With the sensor 112 and the broadcaster 114 The sensor takes an initial measurement at the initial reference frame. 112 received. In particular, the transmitter coils are 114configured to generate an initial multitude of magnetic fields at a first frequency. The first frequency can be a frequency at which the EMT system 100 AR and / or VR systems are configured to operate under normal operating conditions (e.g., during typical use of the EMT system). 100 In some implementations, the first frequency can be used if the EMT system 100 in a first / normal operating mode. The first frequency can be 30 kHz or higher (e.g., 30 kHz, 34 kHz, etc.). In some implementations, the first frequency is a frequency chosen to account for potential distortion in the tracking environment. 106 may be prone to inaccuracies.
[0063] A first set of signals is generated by the sensor. 112 received. For example, the sensor 112 configured to send signals based on properties of the sensor112 to generate received magnetic fields. The sensor 112 The received magnetic fields can largely be based on the magnetic fields emitted by the transmitter. 114 generated at the first frequency. One or more potential distortion sources in the tracking environment. 106 However, this can, among other things, cause the generated magnetic fields to "bend" from their normal geometry. Such distortions can lead to the first multitude of signals from the sensor being lost. 112 Received signals indicate an incorrect P&O of the sensor. 112 relative to the transmitter 114 provides. The first set of signals can be represented as the first 3×3 S data matrix, which is referred to here as S rec0 is referred to as S. For example, S rec0 received while the sensor 112 and the broadcaster 114 in the initial reference frame S P&Oo and T P&Oo are located and the sender 114 Magnetic fields are generated at the first frequency.
[0064] If the sensor 112 and the broadcaster 114 If the sensor is still at or near the initial reference frame 0, a true position of the sensor will be determined. 112 determined (e.g., an actual position of the sensor) 112 (without inaccuracies due to distortions). For example, in some implementations, a second measurement is taken by the sensor. 112 received. In particular, the transmitter coils are 114 configured to generate a second set of magnetic fields at a second frequency. The second frequency can be a frequency at which the EMT system 100 AR and / or VR systems are configured to operate under a specific operating condition (e.g., while the sensor is active). 112 and the broadcaster 114 are stationary or nearly stationary, for example while a user of the EMT system 100(temporarily stops moving). In some implementations, the second frequency can be used when the EMT system 100 operates in a second / undistorted mode. The second frequency can be 1.1 kHz or lower (e.g., 1.1 kHz, 1 kHz, 100 Hz, etc.). In some implementations, the second frequency is one that is selected due to potential distortion in the tracking environment. 106 is not susceptible (or, for example, significantly less susceptible than the first frequency) to inaccuracies.
[0065] A second set of signals is generated by the sensor. 112 received. For example, the sensor 112 configured to send signals based on properties of the sensor 112 to generate received magnetic fields. The sensor 112 The received magnetic fields can largely be based on the magnetic fields emitted by the transmitter. 114at the second frequency. Possible distortions in the tracking environment. 106 can have a limited influence on the magnetic fields generated using the second frequency. As such, potential distortions cannot cause the magnetic fields generated at the second frequency to "bend" from their normal geometry relative to the magnetic fields generated at the first frequency (or, for example, to a significantly lesser extent). Therefore, the second set of signals generated by the sensor represents 112 to be received, an accurate P&O of the sensor 112 relative to the transmitter 114 The second set of signals can be represented as a second 3×3 S data matrix, which is shown here as S sauber0 is referred to as S. For example, S sauber0 received while the sensor 112 and the broadcaster 114 in the initial reference frame S P&Oo and T P&Oo are located and the sender 114Magnetic fields are generated at the second frequency. S sauber0 is referred to as a "clean" S-matrix because it is assumed to correspond exactly to the "clean" (e.g., undistorted) magnetic fields that occur at the sensor. 112 be received. In other words, S sauber0 Theoretically, it represents the signals that the sensor 112 in an environment free of distortions. As such, S is expected to sauber0 into an accurate (e.g., true, correct, actual, etc.) P&O of the sensor 112 can be integrated if the sensor 112 is located in the initial frame of reference.
[0066] In some implementations, S sauber0 using the tracker 132 can be determined with low distortion. That is, instead of the sensor 112 and the transmitter 114 to operate in a low-frequency operating mode to ensure the precise positioning of the sensor 112To determine the position of the sensor, an optical system with one or more cameras can be used. 112 to determine the initial frame of reference. The tracker 132 With low distortion, it can be combined with sensor processing. 142 and the transmitter processing 144 used to ensure the sensor is in the correct position 112 at the initial reference frame as a 3×3 data matrix as S sauber0 to represent.
[0067] In some implementations, the OMDs 122 , 124 , which the sensor 112 and the broadcaster 114 When implemented as IMUs, they provide inertial data while the sensor is moving. 112 and the broadcaster 114 are located in the initial reference frame 0. Such inertial data can be used to orient the sensor. 112 and the sender 114to determine. In some implementations, the orientations as determined based on the inertial data can be taken as accurate orientation data (e.g., the true orientation of the sensor). 112 and the sender 114 In some implementations, the IMUs can each be a 9-axis IMU, and the orientation data can be sent to sensor processing. 142 and / or the transmitter processing 144 be provided.
[0068] As described above, in some implementations the OMDs 122 , 124 This must be implemented at least partially by an optical system that includes one or more cameras. The optical system can determine the true orientation of the sensor. 112 and / or the sender 114Determine using optical data. In this way, data can be determined using IMU(s) and / or an optical system, which determines the orientation of the sensor. 112 and the sender 114 show.
[0069] A distortion term that corresponds to the initial reference frame 0, S dist0 This corresponds to can be calculated according to equation (2): S dist 0 = R s 0 ( S rec 0 − S clean 0 ) R t 0 where S rec0 the S-matrix of the sensor 112 is the one that is received while the sensor is moving 112 and the broadcaster 114 are in the initial frame of reference and during the sender 114 Magnetic fields generated at the first frequency, S sauber0 the S-matrix of the sensor 112 is the one that is received while the sensor is moving 112 and the broadcaster 114 are in the initial frame of reference and during the sender 114Magnetic fields are generated at the second frequency; Rso data are which determine the orientation of the sensor. 112 at the initial reference frame, and RTO data are which indicate the orientation of the transmitter. 114 display the difference between S rec0 and S sauber0 by multiplying the difference by Rso and Rto, rotated into the initial reference frame 0.
[0070] The distortion term that corresponds to the initial reference frame 0, S dist0 , corresponds, can be stored and used (e.g. by one or more computer systems) to compute a distortion term on any reference frame i, (e.g., S disti ), for example, as soon as the sensor 112 and / or the sender 114 resume movement. For example, after the sensor 112 and / or the sender 114have moved to a second position and orientation, which corresponds to a second reference frame S P&O i and T P&O i correspond, as in Fig. Figure 3 shows the initial distortion term S dist0 rotated into the second reference frame according to equation (3): S disti = R si S dist 0 R ti where R si The data includes information about the sensor's orientation. 112 display on the second reference frame i, and R ti Data that determines the orientation of the transmitter 114 at the second reference frame i. In other words, the distortion term that corresponds to the initial reference frame 0, S dist0 , corresponds, is multiplied with data which determines the position and orientation of the sensor. 112 and the sender 114 to specify the initial distortion term S on the second reference frame dist0 to rotate into the second reference frame i, whose product is S distiis depicted.
[0071] With the sensor 112 and the broadcaster 114 A second measurement is taken by the sensor at the initial reference frame i. 112 received. In particular, the transmitter coils are 114 configured to generate a third set of magnetic fields at the first frequency (e.g., in the first mode, which uses the frequency at which the EMT system 100 , AR and / or VR systems are configured to operate under normal operating conditions). As described above, in some implementations the first frequency is a frequency that is limited due to potential distortions in the tracking environment. 106 may be prone to inaccuracies.
[0072] A third set of signals is generated by the sensor. 112 received. For example, the sensor 112 configured to send signals based on properties of the sensor 112to generate received magnetic fields. The sensor 112 The received magnetic fields can largely be based on the magnetic fields emitted by the transmitter. 114 generated at the third frequency. One or more potential distortion sources in the tracking environment. 106 However, this can, among other things, cause the generated magnetic fields to "bend" from their normal geometry. Such distortions can lead to the third set of values from the sensor being lost. 112 Received signals indicate an incorrect P&O of the sensor. 112 relative to the transmitter 114 the second reference frame i provides. The third set of signals can be represented as a third 3×3 S data matrix, which is referred to here as S reci is referred to as S. For example, S reci received while the sensor 112 and the broadcaster 114 in the second reference framework S P&O i and T P&O i are located and the transmitter 114Magnetic fields are generated at the third frequency.
[0073] Based on the third 3×3 S data matrix (e.g., S reci ) and based on the distortion term at the second reference frame i (e.g. S disti ) becomes an undistorted term, S sauberi , determined. In particular, S sauberi determined according to equation (4): S cleani = S reci − R si R s 0 T ( S rec 0 − S clean 0 ) R t 0 R ti T where the undistorted term S sauberi an S-matrix that is used for an accurate (e.g., true, correct, actual, etc.) P&O of the sensor. 112 It is representative if the sensor 112 in the second reference frame i (e.g., S P&Oi and T P&Oi, which are the second position and orientation of the sensor) 112 and the second position and orientation of the transmitter 114 correspond). In other words, the third 3×3 S data matrix, S reci, Distortions due to the presence of one or more conductive or magnetic objects on or near the tracking environment 106 of the EMT system 100 included, and if a P&O of the sensor 112 based on S reci The P&O calculation may contain inaccuracies in one or more dimensions. As such, the distortion term is applied to the second reference frame S. disti from S reci subtracted to generate a calculated S-matrix, which is then used to create an accurate P&O for the sensor 112 can be resolved in the second reference frame (e.g., at the second P&O). In this way, the calculated second P&O of the sensor contains 112 no inaccuracies that would otherwise result from distortions in S reci due to the presence of one or more conductive or magnetic objects on or near the tracking environment 106 would be caused if the undistorted term S sauberi, would not be taken into account.
[0074] In some implementations, if the sensor 112 and / or the sender 114 within the tracking environment 106 move (e.g., relative to the initial reference frames 0 and i), the initial distortion term S dist0 at the following position it will be of minimal use. For example, the properties of the tracking environment may change. 106 at subsequent positions differ significantly from those at the initial frame of reference (e.g., due to a relatively high distortion gradient), and as such, the initial distortion term S dist0 The distortion obtained at the initial reference frame may not be representative of the distortion present at subsequent positions. Therefore, additional distortion terms can be obtained that account for the different sensor positions. 112 and / or the sender 114within the tracking environment 106 These distortion terms can be obtained for different reference frames, which correspond to a position and / or orientation of the sensor. 112 and / or a position and / or orientation of the transmitter 114 correspond. In some implementations, a distortion term for a specific sensor 112 / transmitter may be used. 114 P&O will be received when the sensor 112 and the broadcaster 114 Temporarily stop movement during use.
[0075] The implementations described above are based on techniques for determining a clean position of the sensor. 112, based on undistorted measurements, obtained using a low-frequency operating mode and / or an optical system that is not susceptible to environmental distortions. The distorted and undistorted measurements at an initial location are used to determine a distortion term at the initial location, and the distortion term is used to correct a distorted measurement when the sensor is moved. 112 at a subsequent location. The distortion term is determined approximately at the same time as the position of the sensor. 112 is determined. However, in some implementations, bias terms can occur that affect different locations within the tracking environment. 106 These can be determined in advance. For example, a map of environmental distortions can be created across the entire tracking environment. 106The map can be created as part of an initialization routine or initiated by a user at a later time upon command from the software. If the sensor's true position is known... 112 To determine the distortion term, a previously obtained distortion term can be used, which corresponds to the location of the sensor. 112 This corresponds to being used to ensure a clean positioning of the sensor. 112 to calculate. In this way, distortion terms do not need to be determined in real time.
[0076] To improve the tracking environment 106 to depict, the sender can 114 at a fixed location in or near the tracking environment 106 The sensor is located. 112 is then (e.g. slowly) processed by the tracking environment 106 moved. The sensor 112 can be done manually (e.g., by a user) or mechanically (e.g., according to a predetermined path within the tracking environment). 106, for example by a robot arm). A non-restrictive example could be the sensor 112 on an approximately circular path horizontally (e.g. coplanar) around the transmitter 114 move. The sensor 112 can be used with different radii on different parallel planes in the space around the transmitter 114 be moved around. If the sensor 112 through the tracking environment 106 When moved, distorted position sensor outputs are generated (S rec0 ) determined and stored for the various positions. At the same time, clean position outputs (S sauber0 ) is determined (e.g., using an optical system and / or a low-frequency operating mode). This ensures the precise positioning of the sensor. 112 determined for the various points where the outputs of the distorted position sensor are obtained, and corresponding distortion terms (S dist0The values are correlated with the various clean positions. In this way, distortion data for the entire tracking volume can be recorded with a sufficient spacing between samples.
[0077] The system 100 It can then generate one or more low-bandwidth surface distortion maps with relatively low distortion gradients. For example, the system generates 100 a surface curve fitting of the distortion terms S dist0(e.g., the distortion matrices) using a low-order curve-fitting function, such as a least-squares surface fit (or another surface curve fit). The process is repeated for different distortion matrix surfaces. In this way, the entire tracking volume (or, for example, substantially the entire tracking volume) can be mapped to clean location data. In other words, surface curve fitting can be used to map substantially the entire tracking volume, although it may not have been possible to sample every location within the tracking volume to determine a distortion term. The mapping data can be accessed by the system. 100 stored for later use, as described in more detail below.
[0078] Once mapped, the surface maps can be used to correct for environmental distortions. This is especially important when the sensor's precise positioning is compromised. 112 to be determined, the system can 100 Identify a distortion term that corresponds to a position of the sensor. 112 This corresponds to the distortion term, and the system uses it to correct the distorted position sensor outputs. For example, the system generates... 100 first a sample value of a clean position output (S sauber0 ) at an initially scanned location in the tracking environment 106 The clean position output S sauber0 can be determined as described above using an optical system and / or a low-frequency operating mode. The system 100 The initial clean position output S then correlates sauber0with a specific location (e.g., the nearest location) in the environmental distortion map (e.g., within a tolerance) to determine a suitable initial distortion term S dist0 to select. If the sensor 112 If the sensor is subsequently positioned in a new position, a distorted position sensor output will be generated. reci A measurement is performed. Using, for example, equation 3, a nominal distortion at the current position is calculated. Then, using, for example, equation 4, the output of the sensor's true position is determined. 112 in the current position (S sauberi ) calculated. The output of the clean position (S sauberi ) can then be correlated with the specific location in the environmental distortion map (e.g., within a tolerance) to select the nearest matching distortion term in the global reference frame, and the process is repeated to determine the position of the sensor. 112to be determined at a subsequent position.
[0079] In some implementations (e.g., when the tracking volume is sufficiently mapped), the clean position output of the sensor can be achieved. 112 The distortion term can be calculated using a distortion term corresponding to the current position. In other words, it may not be necessary to calculate the initial distortion term S. dist0 to use in order to calculate the distortion term which corresponds to the current position S disti using equation 3 corresponds, but the output of the clean position (S sauberi ) can be directly calculated using the distortion term at the current position S disti , as can be seen from the illustration.
[0080] In some implementations, the different distortion terms (e.g., "initial" distortion terms that are obtained while the sender is 112and the sensor 114 have stopped moving, as well as other distortion terms calculated based on "initial" distortion terms) and / or the distortion maps described above are stored by the one or more computer systems and / or by a database (e.g., a remote database) in communication with the one or more computer systems. In some implementations, the various distortion terms can be used together to create a distortion map of a particular tracking environment (e.g., the tracking environment). 106 from Fig. 1-3) to create distortion terms that are specific to a particular P&O of the sensor. 112 and a specific P&O of the broadcaster 114 They can be obtained and provide a data point for creating the map.
[0081] Stored distortion terms that correspond to a specific P&O of the sensor 112 and the sender 114These can be useful if the sensor 112 and the broadcaster 114 at a later time, it can then return to the previously determined P&O. For example, the stored distortion term for a specific P&O of the sensor can be used. 112 and the sender 114 can be reused when the sensor 112 and the broadcaster 114 return to the same or a similar P&O. Such distortion terms can be reused if the properties of the tracking environment change. 106 have not changed over time. In some implementations (e.g., when the EMT sensor) 100 is moved to a new location and / or when leading objects are added to the tracking environment 106 or to areas near the tracking environment 106 (added / removed) the tracking environment 106be reassigned to match new biases that are located at or near the new tracking environment 106 may be present.
[0082] In some implementations, the distortion terms can be used to create a numerical model of distortions in the tracking environment. 106 to generate distortion terms that represent an unsampled P&O of the sensor 112 and the sender 114 This corresponds to, for example, an initial distortion map can be generated based on an initial set of distortion terms that are suitable for the tracking environment. 106 These can be obtained. Based on the sampled distortion terms, other distortion terms for positions and orientations within the tracking environment can be derived. 106Distortions can be derived that were not specifically sampled (e.g., positions and orientations near sampled positions and orientations). Additional distortion terms can be added to the distortion map to improve its reliability. When these additional distortion terms are added, the numerical model of distortions in the tracking environment can be further refined. 106 It will be updated to reflect the additional available data points. Over time, the numerical model can be improved so that the EMT system 100 P&O information for the sensor 112 can provide improved accuracy. In some implementations, accurate P&O of the sensor is possible. 112 provided without necessarily obtaining a new initial distortion term (e.g., if the sensor 112 and the broadcaster 114(temporarily stop the movement). For example, a stored distortion term can be used to determine the P&O of the sensor. 112 during operation based on the numerical model of the tracking environment 106 to correct.
[0083] Fig. Figure 4 is a flowchart of an example process. 400 to determine a distortion term and to determine a second (e.g., correct) position of a magnetic sensor relative to a magnetic transmitter (e.g., the magnetic sensor) 112 and the magnetic transmitter 114 of the EMT system 100 from Fig. 1-3). One or more steps of the procedure can be performed by one or more of the computer systems described here.
[0084] In step 402 a magnetic transmitter is generated 114 A first multitude of magnetic fields at a first frequency. The first frequency can be a frequency at which the EMT system100 is configured to operate under normal operating conditions (e.g., during typical use of the EMT system). 100 and / or the AR and / or VR system). In some implementations, the first frequency can be used when the EMT system 100 It operates in a first / normal operating mode. In some implementations, the first frequency is a frequency that is limited due to potential distortion in the tracking environment. 106 It may be prone to inaccuracies. For example, the first frequency is 30 kHz or higher (e.g., 30 kHz).
[0085] In step 404 Several initial signals are received from the magnetic sensor 112 received. The signals are based on properties of the magnetic sensor. 112 received magnetic fields. While the magnetic sensor 112 The received magnetic fields can largely be based on the first multitude of magnetic fields emitted by the magnetic transmitter. 114Potential distortions can occur in the tracking environment if they are generated at the first frequency. 106 This leads to the first set of signals resulting in an incorrect P&O of the magnetic sensor. 112 relative to the magnetic transmitter 114 provides. The first set of signals can be represented as the first 3×3 S data matrix, S rec0 For example, S rec0 received while the magnetic sensor 112 and the magnetic transmitter 114 are in an initial reference frame 0 (e.g., S P&Oo and T P&Oo) and during the magnetic transmitter 114 the first multitude of magnetic fields is generated at the first frequency.
[0086] In step 406 For example, the magnetic transmitter generates 114 , when the magnetic sensor 112 and the magnetic transmitter 114still at or near the initial reference frame 0, a second set of magnetic fields with a second frequency. The second frequency can be a frequency at which the EMT system 100 , AR and / or VR systems are configured to operate under a specific operating condition (e.g., while the magnetic sensor is active). 112 and the magnetic transmitter 114 are stationary or nearly stationary, for example while a user of the EMT system 100 (temporarily stops moving). In some implementations, the second frequency can be used when the EMT system 100 It operates in a second / undistorted operating mode. In some implementations, the second frequency is one that is limited due to potential distortion in the tracking environment. 106The second frequency is not susceptible to inaccuracies (or, for example, significantly less so than the first frequency). For example, the second frequency may be 1.1 kHz or less (e.g., 100 Hz). The second frequency is typically smaller than the first frequency (e.g., significantly smaller). For example, the first frequency may be two orders of magnitude (or more) larger than the second frequency.
[0087] In step 408 Several second signals are generated by the magnetic sensor 112 received. The signals are based on properties of the magnetic sensor. 112 received magnetic fields. The magnetic fields at the magnetic sensor 112 The received magnetic fields can largely be based on the second set of magnetic fields emitted by the magnetic transmitter. 114 at the second frequency. Possible distortions in the tracking environment. 106can have a limited influence on the first set of magnetic fields generated using the second frequency. As such, potential distortions cannot cause (or can cause to a significantly lesser extent, for example) the second set of magnetic fields generated at the second frequency to "bend" from its normal geometry (e.g., compared to the first set of magnetic fields generated at the first frequency). Therefore, the second set of signals generated by the magnetic sensor can 112 to be received, an accurate P&O of the magnetic sensor 112 relative to the magnetic transmitter 114 provide. The second set of signals can be represented as a second 3×3 S data matrix, S sauber0 For example, S sauber0 received while the magnetic sensor 112 and the magnetic transmitter 114are still in the initial reference frame 0 (e.g. S P&Oo and T P&Oo) and during the magnetic transmitter 114 the second set of magnetic fields is generated at the second frequency. S sauber0 is referred to as a "clean" S-matrix because it is assumed to correspond exactly to the "clean" (e.g., undistorted) magnetic fields that occur at the magnetic sensor. 112 be received. In other words, S sauber0 Theoretically represents the signals that the magnetic sensor 112 in an environment free of distortions. As such, S is expected to sauber0 into an accurate (e.g., true, correct, actual, etc.) P&O of the magnetic sensor 112 can be integrated if the magnetic sensor 112 is located in the initial reference frame 0.
[0088] In some implementations, S sauber0determined based on optical data provided by an optical system, as described above. For example, S sauber0 using the tracker 132 with low distortion, which can be implemented as an optical system with one or more cameras. Instead of the sensor 112 and the transmitter 114 to operate in a low-frequency operating mode to ensure the clean positioning of the sensor 112 To determine the position, the optical system can be used to find a clean, undistorted position for the sensor. 112 to determine the initial frame of reference. The tracker 132 With low distortion, it can be combined with sensor processing. 142 and the transmitter processing 144 used to ensure the sensor is in the correct position 112 at the initial reference frame as a 3×3 data matrix as S sauber0 to represent.
[0089] In step 410A distortion term is determined based on the first set of signals and the second set of signals received from the magnetic sensor. 112 The distortion term corresponds to a first position of the magnetic sensor. 112 For example, the distortion term corresponds to the first reference image 0 (e.g., while the magnetic sensor is active). 112 and the magnetic transmitter 114 (at the first position and orientation according to the initial frames S P&Oo, TP&O0). In some implementations, the distortion term corresponding to the initial reference frame 0 is at least partially subtracted from S sauber0 from S rec0 certainly.
[0090] In some implementations, if the OMDs 122 , 124 include IMUs, IMUs that are part of the magnetic sensor 112 and the magnetic transmitter 114 correspond, provide inertial data while the magnetic sensor112 and the magnetic transmitter 114 are located in the initial reference frame 0. Such inertial data can be used to orient the magnetic sensor. 112 and the magnetic transmitter 114 to determine the initial reference frame 0. In some implementations, the orientations as determined based on the inertial data can be taken as accurate orientation data (e.g., the true orientation of the magnetic sensor). 112 and the magnetic transmitter 114 The alignment data can be provided to one or more computer systems (e.g., EM transmitter processing and / or EM sensor processing and / or a separate computer system). In some implementations, the OMDs 122 , 124 include an optical system used to orient the sensor 112 and / or the sender 114 to determine
[0091] In some implementations, data relating to the orientation of the magnetic sensor are used. 112 display at the initial reference frame Rso, and data which determine the orientation of the magnetic transmitter. 114 at the initial frame of reference R t0 display, used to show the difference between S rec0 and S sauber0 to rotate to the initial reference frame 0. In particular, the difference between S rec0 and S sauber0 by multiplying the difference by Rso and Rto, rotated into the initial reference frame 0.
[0092] Once the difference is rotated into the initial frame of reference 0 (or, for example, it is confirmed that the difference is in the initial frame of reference 0), the distortion term corresponding to the initial frame of reference 0 is called S dist0 specified.
[0093] In some implementations, the distortion term that corresponds to the initial frame of reference S can dist0This corresponds to being used to calculate a distortion term on a new reference frame (e.g., a second reference frame i). For example, the magnetic sensor 112 and / or the magnetic transmitter 114 resume the movement and move to a second position and second orientation that correspond to the second reference frame S P&Oi and T P&Oi, as in Fig. 3 shown. The initial distortion term S dist0 can be rotated into the second reference frame i according to equation (3) above. In particular, inertial data relating to the orientation of the magnetic sensor can be used. 112 on the second reference frame R si display, and inertial data which determine the orientation of the magnetic transmitter 114 on the second reference frame R ti display, with the initial distortion term, S dist0 to be multiplied to obtain the initial distortion term S dist0to rotate into the second reference frame i. The product of this multiplication is S disti , a distortion term corresponding to the second frame i.
[0094] In step 412 The magnetic transmitter generates 114 A third set of magnetic fields at the first frequency (e.g., in the first operating mode). This third set of magnetic fields can be generated by the magnetic transmitter. 114 are generated after the magnetic sensor 112 and / or the magnetic transmitter 114 to the second reference frame i. For example, after the magnetic sensor 112 and / or the magnetic transmitter 114 have moved into the second position and second orientation, which corresponds to the second reference frame S P&O i and T P&O iThis corresponds to the third set of magnetic fields. As described above, in some implementations the first frequency is a frequency that is affected by potential distortions in the tracking environment. 106 may be prone to inaccuracies.
[0095] In step 414 A third set of signals is generated by the magnetic sensor. 112 received. The signals are based on properties of the magnetic sensor. 112 received magnetic fields. While the magnetic sensor 112 The received magnetic fields can be largely based on the third set of magnetic fields emitted by the magnetic transmitter. 114 Potential distortions can occur in the tracking environment if they are generated at the first frequency. 106 This leads to the third set of signals generating an incorrect P&O of the magnetic sensor. 112 relative to the magnetic transmitter 114provides. The third set of signals can be represented as the third 3×3 S data matrix, S reci , will be represented. For example, S reci received while the magnetic sensor 112 and the magnetic transmitter 114 in the second reference frame i (e.g. S P&O) i and T P&O i ) and during the magnetic transmitter 114 the third multitude of magnetic fields is generated at the first frequency.
[0096] In step 416 The second position and orientation of the magnetic sensor will be determined. 112 relative to the magnetic transmitter 114 (e.g. at the second reference frame i) based on the third set of signals received from the magnetic sensor 112 The signal is received and determined by the distortion term. For example, the second position and orientation of the magnetic sensor are determined. 112 relative to the magnetic transmitter 114 based on the third 3×3 S-data matrix (e.g., S reci) and determined based on the distortion term at the second reference frame i (e.g. S disti ).
[0097] In some implementations, determining the second position and orientation of the magnetic sensor includes 112 relative to the magnetic transmitter 114 on the second reference frame i, determining an unbiased term S sauberi , which can be determined according to equation (4) above. The undistorted term S sauberi is an S-matrix, which is used for an accurate (e.g., true, correct, actual, etc.) P&O of the magnetic sensor. 112 is representative if the magnetic sensor 112 in the second reference frame i (e.g., S P&Oi and T P&Oi, which are the second position and orientation of the sensor) 112 and the second position and orientation of the magnetic transmitter 114 correspond). In other words, the third 3×3 S data matrix, S reci, Distortions due to the presence of one or more conductive or magnetic objects on or near the tracking environment 106 of the EMT system 100 include, and if a P&O of the magnetic sensor 112 based on S reci The P&O calculation may include inaccuracies in one or more dimensions. As such, the distortion term on the second reference frame S disti from S reci are subtracted to generate a calculated S-matrix, which is then used to create an accurate P&O for the magnetic sensor. 112 It can be integrated into the second reference frame (e.g., at the second P&O). In this way, the calculated second P&O of the magnetic sensor is included. 112 no inaccuracies that would otherwise result from distortions in S reci due to the presence of one or more conductive or magnetic objects on or near the tracking environment 106would be caused if the undistorted term S sauberi , would not be taken into account.
[0098] In some implementations, distortion terms can be defined for different positions within the tracking environment. 106 as part of a mapping procedure, as described in more detail above, the distortion terms can be determined in advance. These distortion terms can be used to compute undistorted terms for the sensor output when the sensor is 112 is then positioned.
[0099] As described above, the EMT system 100 operated using software executed by a computer device, such as one or more computer systems connected to HMD 102 / Sensor 112 and / or control 104 / transmitter 114 work, and / or one or more separate computer systems connected to the sensor 112 and the broadcaster 114are related. In some implementations, the software is included on a computer-readable medium for execution on one or more computer systems. Fig. Figure 5 shows an example computer device 500 and an exemplary mobile computing device 550 , which can be used to implement the techniques described here. For example, determining and / or setting distortion terms and determining the sensor's P&O. 112 from the computer device 500 and / or the mobile computing device 550 The computer device is executed and controlled. 500 It is intended to represent various forms of digital computers, including, for example, laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The computer device 550This document is intended to represent various forms of mobile devices, including, for example, personal digital assistants, mobile phones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions are intended only as examples and are not meant to limit the implementation of the techniques described and / or claimed in this document.
[0100] The computer device 500 closes the processor 502 , the storage 504 , the storage device 506 , the high-speed interface 508 , which are connected to the storage 504 and the high-speed expansion ports 510 is connected, and the low-speed interface 512 , which are on the low-speed bus 514 and the storage device 506 is connected, one. Each of the components 502 , 504 , 506 ,508 , 510 and 512 The components are interconnected using various buses and can be mounted on a common motherboard or in other ways. The processor 502 can provide instructions for execution within the computer device 500 processing, including instructions stored in memory 504 or on the storage device 506 are stored to display graphical data for a GUI on an external input / output device, including, for example, a display. 516 , coupled with the high-speed interface 508 In some implementations, multiple processors and / or multiple buses can be used, along with multiple memories and memory types, as needed. Additionally, multiple computing devices can be used. 500They are connected, with each device providing parts of the required operations (e.g., as a server bank, a group of blade servers, a multiprocessor system, etc.).
[0101] The storage 504 stores data in the computer device 500 In some implementations, the memory 504 a volatile memory unit or volatile memory units. In some implementations, the memory is 504 a non-volatile storage unit or non-volatile storage units. The memory 504 It can also be another form of computer-readable medium, including, for example, a magnetic or optical disk.
[0102] The storage device 506 can be a mass storage device for the computer 500 provide. In some implementations, the storage device 506A computer program product may be or contain a computer-readable medium, including, for example, a floppy disk device, a hard disk device, an optical disk device, a tape device, flash memory, or other similar solid-state storage device, or a set of devices, including devices in a storage area network or other configurations. A computer program product may be physically embodied in a data carrier. The computer program product may also contain instructions which, when executed, perform one or more procedures, including, for example, those described above relating to determining and / or setting distortion terms and determining the sensor's P&O. 112 The data carrier is a computer- or machine-readable medium, including, for example, memory. 504 , storage device 506 , memory on processor 502 and the like.
[0103] The high-speed control 508 manages bandwidth-intensive operations for the computer device 500 , while the low-speed control 512 Operations with lower bandwidth are managed. Such a function assignment is just one example. In some implementations, high-speed control is used. 508 with the memory 504 , the advertisement 516 (e.g. via a graphics processor or accelerator) and with the high-speed expansion ports 510 coupled, which can accommodate various expansion cards (not shown). In some implementations, the low-speed control is 512 with the storage device 506 and the low-speed extension sport 514coupled. The low-speed expansion port, which can include various communication ports (e.g., USB, Bluetooth®, Ethernet, wireless Ethernet), can be connected to one or more input / output devices, including, for example, a keyboard, pointing device, scanner, or network device, such as a switch or router (e.g., via a network adapter).
[0104] The computer device 500 can be implemented in a number of different forms, such as in Fig. 5 shown. For example, the computer device 500 as standard server 520 or be implemented multiple times in a group of such servers. The computer device 500 can also be used as part of the rack server system 524 be implemented. Additionally or as an alternative, the computer device can be used. 500 in a personal computer (e.g. a laptop computer) 522) be implemented. In some examples, components can be implemented by the computer device. 500 with other components in a mobile device (e.g. the mobile computer device) 550 ) can be combined. Each of these devices can be one or more of the computer devices. 500 , 550 included, and an entire system can consist of several computer devices 500 , 550 exist that communicate with each other.
[0105] The computer device 550 This includes, among other things, the processor. 552 , the storage 564 and an input / output device that, for example, displays the display 554 , the communication interface 566 and the transceiver 568 includes the device 550It may also be equipped with a storage device, including, for example, a micro-drive or other device to provide additional storage. The components 550 , 552 , 564 , 554 , 566 and 568 They can each be connected to each other using different buses, and several of the components can be mounted on a common motherboard or in other ways.
[0106] The processor 552 can provide instructions within the computer device 550 execute, including instructions stored in memory 564 are stored. The processor 552 It can be implemented as a chipset of chips containing single or multiple analog and digital processors. The processor 552 This could, for example, be the coordination of the other components of the device. 550provide, including, for example, the control of user interfaces, from the device 550 executed applications and wireless communication through the device 550 .
[0107] The processor 552 can interact with a user via the control interface 558 and the one with the ad 554 coupled display interface 556 communicate. The ad 554 This could be, for example, a TFT-LCD display (thin-film transistor liquid crystal display), an OLED display (organic light-emitting diode), or another suitable display technology. The display interface 556 Can a suitable circuit be used to control the display? 554 to present graphical and other data to a user. The control interface 558 can receive commands from a user and forward them to the processor 552convert. Additionally, the external interface can 562 with the processor 542 communicate to establish short-range communication of the device 550 to enable the use of other devices. The external interface 562 For example, it can provide wired communication in some implementations or wireless communication in others. Multiple interfaces can also be used.
[0108] The storage 564 stores data in the computer device 550 The storage 564 It can be implemented as one or more computer-readable media, volatile storage units, or non-volatile storage units. The expansion memory 574 can also be provided and used via the extension interface 572 with the device 550They can be connected, for example, to a SIMM (Single In-Line Memory Module) card interface. Such an expansion memory 574 can provide additional storage space for the device 550 provide and / or can provide applications or other data for the device 550 save. In particular, the expanded storage can 574 It may also contain instructions for executing or supplementing the processes described above and include secure data. For example, the extended memory can 574 as a safety module for the device 550 provided and programmed with instructions that ensure safe use of the device 550 enable. In addition, secure applications can be deployed via the SIMM cards along with additional data, including, for example, placing identification data on the SIMM card in a non-hackable manner.
[0109] The storage 564 It may, for example, include flash memory and / or NVRAM memory, as discussed below. In some implementations, a computer program product is physically contained on a data carrier. The computer program product contains instructions that, when executed, perform one or more procedures, including, for example, those described above regarding determining and / or setting distortion terms and determining the sensor's P&O. 112 The data carrier is a computer- or machine-readable medium, including, for example, memory. 564 , expansion memory 574 and / or memory on the processor 552 , which, for example, is transmitted via the transceiver 568 or the external interface 562 can be received.
[0110] The device 550 can be wireless via the communication interface 566communicate, which can include a digital signal processing circuit if required. The communication interface 566 It can provide communication under various modes or protocols, including, for example, GSM voice calls, SMS, EMS or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 or GPRS, among others. Such communication can be achieved, for example, via the high-frequency transceiver. 568 This can be done. Additionally, short-range communication is possible, including, for example, using Bluetooth®, Wi-Fi, or another such transceiver (not shown). Additionally, the GPS receiver module can... 570 (Global Positioning System) of the device 550 Provide additional navigation and location-based wireless data for applications running on the device 550 can be executed and used accordingly.
[0111] The device 550 can also be heard using the audio codec 560 A communication device that can receive spoken data from a user and convert it into usable digital data. The audio codec 560 It can also generate an audible sound for a user, for example via a loudspeaker, e.g. in a handset of the device. 550 . Such sound can include sound from voice telephone calls, recorded sound (e.g., voice messages, music files, and the like), and also sound generated by applications running on the device. 550 work.
[0112] The computer device 550 can be implemented in a number of different forms, such as in Fig. 5 shown. For example, the computer device 550 as a mobile phone 580 be implemented. The computer device 550 can also be part of the smartphone 582, the personal digital assistant or other similar mobile device.
[0113] Various implementations of the systems and techniques described here can be realized in digital electronic circuits, integrated circuits, purpose-built ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include one or more computer programs that are executable and / or interpretable on a programmable system. This includes at least one programmable processor, which can be a special-purpose or general-purpose processor, coupled to receive data and instructions from and to a storage system, at least one input device, and at least one output device.
[0114] These computer programs (also known as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in a high-level procedural and / or object-oriented programming language and / or in assembly / machine language. As used herein, the terms machine-readable medium and computer-readable medium refer to a computer program product, device, and / or apparatus (e.g., magnetic disks, optical disks, memory, programmable storage devices (PLDs)) used to provide machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions. In some implementations, the memory, storage devices, machine-readable medium, and / or computer-readable medium are non-volatile.
[0115] To provide user interaction, the systems and techniques described here can be implemented on a computer that has a display device (e.g., a CRT (cathode ray tube) monitor or an LCD (liquid crystal display)) to present data to the user, and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to enable user interaction. For example, feedback provided to the user can be a form of sensory feedback (e.g., visual, auditory, or tactile). Input from the user can be received in a variety of forms, including auditory, verbal, or tactile.
[0116] The systems and techniques described here can be implemented in a computer system that includes a backend component (e.g., a data server), a middleware component (e.g., an application server), a frontend component (e.g., a client computer with a user interface or web browser through which a user can interact with an implementation of the systems and techniques described here), or a combination of such backend, middleware, or frontend components. The system components can be interconnected by some form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the internet.
[0117] A computer system can contain clients and servers. A client and a server are generally located remotely and typically interact through a communication network. The relationship between client and server is established through computer programs running on the respective computers, which establish a client-server relationship.
[0118] In some implementations, the components described here can be separate, combined, or integrated into a single or combined component. The components depicted in the figures are not intended to restrict the systems described here to the software architectures shown in the figures.
[0119] A number of embodiments have been described. However, it is understood that various modifications can be made without deviating from the spirit and scope of the disclosure. Accordingly, other embodiments fall within the scope of the following claims.
Claims
[1] System comprising: a magnetic transmitter configured to generate magnetic fields; a magnetic sensor configured to generate signals based on properties of the magnetic fields received at the magnetic sensor; and one or more computer systems configured to: causing the magnetic transmitter to generate a first plurality of magnetic fields at the first frequency; Receiving a first plurality of signals from the magnetic sensor; Determining data indicative of a position and orientation of the magnetic sensor at a first position of the magnetic sensor; Determining, based on the first plurality of signals and the data indicative of the position and orientation of the magnetic sensor at the first position, a distortion term corresponding to a first position of the magnetic sensor; causing the magnetic transmitter to generate a third plurality of magnetic fields at the first frequency; Receiving a third plurality of signals from the magnetic sensor; and Determining, based on the third plurality of signals received from the magnetic sensor and the distortion term, a second position and orientation of the magnetic sensor relative to the magnetic transmitter, wherein the first frequency is greater than the second frequency. [2] The system of claim 1, wherein determining data indicative of a position and orientation of the magnetic sensor at a first position of the magnetic sensor comprises: causing the magnetic transmitter to generate a second plurality of magnetic fields at the second frequency; and Receiving a second plurality of signals from the magnetic sensor. [3] The system of claim 2, wherein the first frequency is greater than the second frequency. [4] The system of claim 1, wherein determining data indicative of a position and orientation of the magnetic sensor at a first position of the magnetic sensor comprises: Obtaining optical data relating to the position and orientation of the magnetic sensor at a first position using an optical system; and Determining the data indicating the position and orientation of the magnetic sensor at the first position based on the optical data. [5] The system of claim 2, wherein in some implementations, the first and second pluralities of magnetic fields are generated when the magnetic transmitter remains at a first position and a first orientation, and the first and second pluralities of signals are generated by the magnetic sensor while the magnetic sensor remains at the first position and a first orientation. [6] The system of claim 2, wherein the first plurality of signals is represented as a first 3×3 data matrix, the second plurality of signals is represented as a second 3×3 data matrix, and the distortion term is represented as a 3×3 data matrix. [7] The system of claim 6, wherein the 3×3 data matrix corresponding to the distortion term is calculated at least in part by subtracting the second 3×3 data matrix from the first 3×3 data matrix. [8] The system of claim 7, wherein the magnetic transmitter and the magnetic sensor are each associated with an inertial measurement unit (IMU) configured to provide inertial data. [9] The system of claim 8, wherein the 3×3 data matrix corresponding to the distortion term is calculated at least in part by multiplying the difference between the first 3×3 data matrix and the second 3×3 data matrix by inertial data of the magnetic transmitter and inertial data of the magnetic sensor obtained while the magnetic transmitter remains at a first position and a first orientation and the magnetic sensor remains at the first position and a first orientation. [10] The system of claim 9, wherein multiplying the difference between the first 3×3 data matrix and the second 3×3 data matrix by the inertial data while the magnetic transmitter and the magnetic sensor remain at their respective first positions and orientations results in the 3×3 data matrix corresponding to the distortion term being rotated into an initial reference frame corresponding to the first orientation of the magnetic transmitter and the first orientation of the magnetic sensor. [11] The system of claim 10, wherein the 3×3 data matrix corresponding to the distortion term at the initial reference frame is multiplied by inertial data of the magnetic transmitter and inertial data of the magnetic sensor when the magnetic transmitter is at a second position and a second orientation and the magnetic sensor is at a second reference frame, the distortion term at the second reference frame being represented as a 3×3 data matrix. [12] The system of claim 11, wherein multiplying the 3×3 data matrix corresponding to the distortion term at the initial reference frame by the inertial data obtained when the magnetic transmitter and the magnetic sensor are at their respective second positions and orientations results in the corresponding 3×3 data matrix corresponding to the distortion term at the initial reference frame to be rotated into the second reference frame, the 3×3 data matrix corresponding to the distortion term at the second reference frame corresponding to the second orientation of the magnetic transmitter and the second orientation of the magnetic sensor. [13] The system of claim 12, wherein the third plurality of signals is represented as a third 3×3 data matrix, and the third 3×3 data matrix corresponds to the second reference frame. [14] The system of claim 13, wherein the third plurality of signals includes distortions due to the presence of one or more conductive or magnetic objects at or near a tracking environment of the system, and a third position and orientation of the magnetic sensor relative to the magnetic transmitter corresponding to the third plurality of signals includes inaccuracies in one or more dimensions. [15] The system of claim 13, wherein the one or more computer systems are further configured to: based on the third 3×3 data matrix corresponding to the second reference frame and the 3×3 data matrix corresponding to the distortion term at the second reference frame, determine an undistorted term corresponding to the second position and orientation of the magnetic sensor; and to determine the second position and orientation of the magnetic sensor relative to the magnetic transmitter based on the undistorted term. [16] The system of claim 15, wherein the undistorted term is determined by subtracting the 3×3 data matrix corresponding to the distortion term at the second reference frame from the third 3×3 data matrix corresponding to the second reference frame. [17] The system of claim 16, wherein the undistorted term corresponds to a correct position and orientation of the magnetic sensor, and the second position and orientation of the magnetic sensor represents the correct position and orientation of the magnetic sensor. [18] The system of claim 17, wherein the second position and orientation of the magnetic sensor does not include inaccuracies that would otherwise be caused by distortions in the third plurality of signals due to the presence of one or more conductive or magnetic objects at or near a tracking environment of the system if the undistorted term were not taken into account. [19] The system of claim 1, wherein the first frequency is 30 kHz or more. [20] The system of claim 2, wherein the second frequency is 1.1 kHz or less. [21] The system of claim 20, wherein the second frequency is 100 Hz. [22] Method comprising: causing a magnetic transmitter to generate a first plurality of magnetic fields at the first frequency; Receiving, from a magnetic sensor, a first plurality of signals; Determining data indicative of a position and orientation of the magnetic sensor at a first position of the magnetic sensor; Determining, based on the first plurality of signals and the data indicative of the position and orientation of the magnetic sensor at the first position, a distortion term corresponding to a first position of the magnetic sensor; causing the magnetic transmitter to generate a third plurality of magnetic fields at the first frequency; Receiving, from the magnetic sensor, a third plurality of signals; and Determining, based on the third plurality of signals received from the magnetic sensor and the distortion term, a second position and orientation of the magnetic sensor relative to the magnetic transmitter. [23] One or more non-transitory computer-readable media storage instructions executable to cause a computing device to perform operations comprising: causing a magnetic transmitter to generate a first plurality of magnetic fields at the first frequency; Receiving, from a magnetic sensor, a first plurality of signals; Determining data indicative of a position and orientation of the magnetic sensor at a first position of the magnetic sensor; Determining, based on the first plurality of signals and the data indicative of the position and orientation of the magnetic sensor at the first position, a distortion term corresponding to a first position of the magnetic sensor; causing the magnetic transmitter to generate a third plurality of magnetic fields at the first frequency; Receiving, from the magnetic sensor, a third plurality of signals; and Determining, based on the third plurality of signals received from the magnetic sensor and the distortion term, a second position and orientation of the magnetic sensor relative to the magnetic transmitter.