Systems and methods for spatial tracking

Systems and methods for spatial tracking using a hybrid signal are disclosed. A method for spatial tracking using a hybrid signal may include: receiving, from a peripheral unit and via an antenna array of a central unit, a signal that includes inertial measurement data from an inertial measurement unit (IMU) of the peripheral unit, and a constant tone extension (CTE); determining, based on the CTE, direction data for the peripheral unit; and determining, based on the direction data and the inertial measurement data, spatial tracking data for the peripheral unit.

TECHNICAL FIELD

The present disclosure relates generally to systems and methods to determine position and/or orientation of an object, and more particularly, to fusing inertial measurements and Bluetooth direction finding (DF) for spatial tracking.

BACKGROUND

Numerous applications may require or benefit from spatial tracking, e.g., precise tracking of the pose of a reference frame relative to one or more additional reference frames. Inertial measurement units (IMUs) may include an accelerometer and a gyroscope, and may conventionally provide a means to estimate the pose of a reference frame. IMUs are generally small, low cost, have low power requirements, and do not generally require line-of-sight relative to other devices. However, IMUs often experience biases that may be sensitive to the operating environment, noise, and/or other sources of error. IMU-only navigation systems generally use dead reckoning to estimate pose, which is generally vulnerable to the accumulation of errors over time.

To obtain estimates of position and orientation for tracking via an IMU, a form of discrete integration using linear acceleration and angular velocity, with appropriate initial conditions, may be applied to the accelerometer and gyroscope signals, respectively. While changes in orientation depend on the angular velocity of the reference frame, translational changes depend on both linear acceleration and angular velocity. The use of both linear acceleration and angular velocity signals from the accelerometer and the gyroscope, respectively, may compound the errors therefrom and/or result in an additional source of error.

Furthermore, the acceleration due to gravity, e.g., approximately 9.81 m/s2(32.2 ft/s2), may result in the acceleration of gravity being significantly larger than the acceleration being measured and integrated. As a result, minute errors in tracking the direction of the gravity vector (via the gyroscope or otherwise) may obfuscate the meaningful acceleration signal. This challenge may be compounded by the fact that a double integration is generally required to achieve positional updates, resulting in a compounding of error in a way that tends to result in a second order divergence from the ground truth.

SUMMARY

In one aspect, an exemplary embodiment of a computer-implemented method for spatial tracking using a hybrid signal may include: receiving, from a peripheral unit and via an antenna array of a central unit, a signal that includes inertial measurement data from an inertial measurement unit (IMU) of the peripheral unit; and a constant tone extension (CTE); determining, based on the CTE, direction data for the peripheral unit; and determining, based on the direction data and the inertial measurement data, spatial tracking data for the peripheral unit.

In another aspect, an exemplary embodiment of a system for spatial tracking using a hybrid signal may include: at least one memory storing instructions; and one or more processors operatively connected with the at least one memory, and configured to execute the instructions to perform operations. The operations may include: receiving, from a peripheral unit and via an antenna array of a central unit, a signal that includes: inertial measurement data from an IMU of the peripheral unit; and a CTE; determining, based on the CTE, direction data for the peripheral unit; and determining, based on the direction data and the inertial measurement data, spatial tracking data for the peripheral unit.

In a further aspect, an exemplary embodiment of a non-transitory computer-readable storage medium for spatial tracking using a hybrid signal may include: receiving, from a peripheral unit and via an antenna array of a central unit, a signal that includes: inertial measurement data from an IMU of the peripheral unit; and a CTE; determining, based on the CTE, direction data for the peripheral unit; and determining, based on the direction data and the inertial measurement data, spatial tracking data for the peripheral unit.

It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosed embodiments, as claimed. Other features and aspects of this disclosure will be apparent from the following description and the accompanying drawings.

DETAILED DESCRIPTION

Several conventions used in the following text are provided here for clarity. The term “microprocessor” generally encompasses, without limitation, field programmable gate arrays (FPGA), application specific integrated circuits (ASIC), and central processing units (CPU). The term “pose” refers to the position and orientation of one reference frame relative to another reference frame. For exemplary reference frames W, B, C, the pose of body frame (B) with respect to world frame (W) may be denoted by a transformation gwb≡(Ωwb, pwb) ∈ SE(3), where Ωwb∈ SO(3) represents the orientation of B relative to W, and Pwb∈ R3represents the position of the origin of B relative to W. Pose gwbat a given time t=τ may be denoted (gwb)τ, where t is a variable representing time and τ represents a particular value of t. The tangent space of gwbin W may be denoted by Vwbw≡(vwbw·ωwbw) ∈ sc(3), where ωwbw∈ so(3) represents the instantaneous angular velocity of B as observed from W and vwbw∈ TωR3represents the instantaneous linear velocity of velocity vector field vwbat the origin of W. A vector in W defined by the difference of two points (pwb-pwc) will be denoted vw(b,c). Reference frames such as W, B, and C represent mathematical objects associated with points on physical rigid bodies, and transformations such as gwb, and similar terms, represent physical configurations of such objects. Lowercase Latin subscripts and superscripts are used to refer to reference frames, as above, and lowercase Greek subscripts and superscripts are used for indices.

IMUs frequently experience non-constant biases and zero-mean noise, and when used to estimate a pose via dead reckoning, the accumulation of such errors often creates significant difficulty in maintaining the accuracy of a pose estimates over meaningful periods of time.

Thus, in some embodiments, it may be beneficial to employ a hybrid of sensor signal types, e.g., via one or more sensor fusion techniques, which may achieve improved accuracy of spatial tracking relative to conventional techniques. Sensor fusion techniques may be applied for determining a pose of any object where sensors of different modalities, e.g., IMU and Bluetooth DF, are used. In one example embodiment, one or more sensors, e.g., a peripheral unit, attached to an object that defines a body reference frame may emit various sensor data, e.g., inertial measurement data, and a constant tone extension (CTE). The emitted sensor data and CTE may be received and utilized by a central unit that defines a global reference frame. In this embodiment the inertial data provides information relating to the linear acceleration and angular velocity experienced by the peripheral unit, and the CTE facilitates a series of measurements that provide information relating to the azimuth and elevation of the peripheral unit in the global reference frame. While a CTE is discussed in this embodiment for finding azimuth and elevation, it should be understood that various types of suitable signals may be used in various embodiments. The central unit may interact or be integrated with a device, e.g., an interface unit, that implements a sensor fusion technique utilizing the local inertial information together with the global directional information to spatially track the object.

Such sensor fusion techniques may be applied in a wide variety of applications, such as a medical or surgical environment to provide an improved position or orientation estimate of patient anatomy and/or medical instruments used during a medical or surgical procedure. Other exemplary application include manufacturing, (e.g., tracking and/or control of persons or devices used in a manufacturing process), video games (e.g., tracking a controller or limb to control rendering or movement of a virtual object), virtual and augmented reality (e.g. tracking a user's anatomy, or tracking another real object that has a virtual representation in a virtual space), vehicle control, etc. Examples of techniques for fusing outputs from tracking sensors, e.g., accelerometer, gyroscope, Bluetooth DF, to reduce pose estimation error are described herein.

FIG.1illustrates an exemplary embodiment of a system for inertial pose estimation, in accordance with one or more aspects of this disclosure. The embodiment of the system inFIG.1may include a central unit100, a peripheral unit113, a computation platform131, and an interface unit127, which may communicate over a communication network129.

In the illustrated embodiment, central unit100may include antenna array101, a radio103, a microprocessor105, an inertial measurement unit (IMU)107, and a radio frequency (RF) switch109. The antenna array101may define a global reference frame Wand may have a plurality of antennas101p, each of which may define a local antenna frame (Np). Antennas101pmay be rigidly fixed relative to W such that gwnpare fixed and determined prior to use. One or more antennas101may also be configured to communicate with peripheral unit113.

In one embodiment, radio103may be a Bluetooth low energy (BLE) radio that may be configured to continuously transmit and/or scan for BLE advertising messages to establish connectivity with other BLE devices and/or services to enable data exchange, e.g., transmit processed data. Radio103may provide considerably reduced power consumption while searching for and discovering corresponding BLE devices, and may be engaged continually without rapidly draining device battery. In another embodiment, radio103may also discover non-BLE wireless platforms and services, as using the BLE service discovery for other wireless communication modes residing on the same platform may result in significant power saving. In a further embodiment, radio103may be a software-defined radio that may be configured using software(s) to handle any number of different communication standards, including custom or otherwise non-standards-driven wireless communications.

In one embodiment, microprocessor105may control the operation of central unit100. Microprocessor105may be a computer processor where the data processing logic and control is included on a single integrated circuit (IC) or a small number of integrated circuits. Microprocessor105may include arithmetic unit, logic unit, control unit, and memory unit to perform the functions of a central processing unit (CPU) of a computer.

The radio103and microprocessor105may, for example, be packaged together as a system on a chip (SOC), e.g. a Nordic® Semiconductor nRF52833. RF switch109may be connected between radio103and antenna array101to facilitate serial reception and transmission using two or more antennas10l, during operations calling for access to more than one antenna101. In one embodiment, RF switch109may route radio frequency signals between various inputs and outputs. RF switches may be classified based on the switching action, e.g., electromechanical switches, solid state switches, etc. In one instance, electromechanical switches may have metal contacts which may either be physically open to prevent current or signal flow or closed to allow current flow. In another instance, solid state switches implement semiconductor technology, e.g., PIN diodes, field effect transistor (FET), hybrid switches, etc., to selectively open and close circuits.

IMU107may be utilized to confirm that W is stationary relative to the Earth, within a predetermined threshold. In other embodiments, e.g., in an embodiment in which the central unit100is assumed to be stationary relative to the Earth, the central unit100may not include an IMU.

In the embodiment illustrated inFIG.1, peripheral unit113may contain IMU115, which may define a body reference frame B, with origin at the intersection of three independent accelerometer basis vectors, and may measure the local acceleration and angular velocity of B. Peripheral unit113may also contain antenna117, radio119, and microprocessor121, which may facilitate processing and transmission of inertial measurement data from peripheral unit113to central unit100. Antenna101may define frame D which may be fixed relative to B such that gdbis fixed and determined prior to use. In one embodiment, the origin of D is a phase center of antenna101. One or more components of peripheral unit113may be contained in housing123, which may include coupling feature125. Coupling feature125may define coupling frame (C), and IMU115may be rigidly fixed relative to coupling feature125such that gcbis fixed and determined prior to use. Mount111may define a mount frame (T) that may be rigidly fixed relative to antenna117, such that gwtis fixed and determined prior to use, and is configured to engage coupling feature125in a pre-determined pose, such that gtcis fixed and determined prior to use, and such that an initial transformation (gwb)0=gwtgtcgcbis determined during an initialization step, as discussed in more detail below. In one embodiment, the transformations that are fixed and determined prior to use are determined on a manufacturing line as step in a manufacturing process.

In one embodiment, peripheral unit113may be fixedly secured to the inner structure of object133or removably attached to the outer frame of object133. In one example embodiment, object133may comprise end effector135coupled to forearm137by way of wrist joint139, e.g., a differential joint. The differential joint may permit end effector135to be rotated anywhere within a partial sphere and/or to be positioned with respect to forearm137in any position within the partial sphere. As discussed in further detail below, peripheral unit113may transmit, in real-time or near time, inertial measurement data and CTE to facilitate estimation of the orientation, position, and/or velocity of end effector135and/or forearm137, and central unit100may receive, in real-time or near real-time, inertial measurement data and CTE from peripheral unit113. And, as also discussed in further detail below, central unit100may implement sensor fusion techniques to fuse the inertial measurement information and DF information to determine elevation, azimuth, and/or direction to spatially track end effector135and forearm137.

Central unit100may be in communication with interface unit127, which may interface with a user, e.g., a human, and may be configured to utilize information relating to gwbfor various purposes. In one embodiment, interface unit127may include, but is not restricted to, a mobile handset, a wireless communication device, a station, a unit, a device, a multimedia computer, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a Personal Communication System (PCS) device, a personal navigation device, a Personal Digital Assistant (PDA), an infotainment system, a dashboard computer, a television device, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof. Any known and future implementations of interface unit127may also be applicable. In one embodiment, interface unit127and central unit100may both contain distinct microprocessors. In an alternate embodiment, interface unit127and central unit100are integrated and utilize at least one microprocessor in common. In an example, interface unit127may utilize the information relating to the spatial tracking of peripheral unit113for any suitable purpose such as, for example, performing and/or ensuring accuracy of a motion of the object133, relating motion of the object133to a virtually rendered object, etc.

Communication network129may include one or more networks such as a data network, a wireless network, a telephony network, or any combination thereof. It is contemplated that the data network may be any local area network (LAN), metropolitan area network (MAN), wide area network (WAN), a public data network (e.g., the Internet), short range wireless network, or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network, and the like, or any combination thereof. In addition, the wireless network may be, for example, a cellular network and may employ various technologies including 5G (5thGeneration), 4G, 3G, 2G, Long Term Evolution (LTE), enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX), code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (Wi-Fi), wireless LAN (WLAN), Bluetooth, Internet Protocol (IP) data casting, satellite, mobile ad-hoc network (MANET), and the like, or any combination thereof. In one example embodiment, peripheral unit113may transmit a BLE advertising message over a Bluetooth communication network129to establish connectivity with central unit100. Central unit100may detect the BLE advertising message and may establish a connection with peripheral unit113to enable data transfer. It should be understood that different devices inFIG.1may use different networks or communications protocols to communicate, for example, the peripheral unit113may be in communication with the central unit100via the Bluetooth communication network129, while the central unit100may be in communication with the interface unit127and/or the computation platform131via a wired or wireless internet connection, or the like.

In one embodiment, computation platform131may be a platform with multiple interconnected components. Computation platform131may include one or more servers, intelligent networking devices, computing devices, components, and corresponding software for fusing different signal types for spatial tracking. In addition, it is noted that, in various embodiments, computation platform131may be a separate entity ofFIG.1or a part of central unit100, peripheral unit113, and/or interface unit127. Any known or still developing methods, techniques, or processes for fusing different signal types for spatial tracking may be employed by computation platform131.

In one instance, to reduce biases in IMU107and/or IMU115, coupling feature125of peripheral unit113may be attached to an object that is fixed relative to W. In one embodiment, computation platform131may perform a computational coupling of IMU signals to reduce IMU bias, e.g., accelerometer signals may be compared to determine a reference with respect to the direction of gravity and gyroscope signals may be compared relative to some zero or non-zero reference angular velocity.

In one embodiment, computation platform131may be configured to receive and fuse inertial measurement data and Bluetooth DF data. For example, computation platform131may receive input data of various types from various sensors of central unit100and peripheral unit113. In one embodiment, peripheral unit113may transmit a signal pertaining to the pose of an object. A portion of the transmitted signal, may include a direction-finding signal such as a CTE signal that is an un-whitened signal representing a series of binary is. Computation platform131may fuse direction data determined via Bluetooth DF with the position and orientation data determined via the inertial measurement data to determine an estimation of the pose of the object. In one example, the computation platform131may determine the estimation of the pose by inputting DF information and inertial information into a recurrent neural network (RNN) with long short-term memory (LSTM). In another example, the computation platform131may apply one or more algorithms to the DF data and the inertial data to determine the estimation of the pose.

In one embodiment, computation platform131may estimate the error states for an object's pose by utilizing models for how the object is expected behave, e.g., based on physical models, etc., and compare these models to the actual measurements from the sensors, e.g., inertial and DF. Computation platform131may use the differences between the model and the measurements to provide a better estimate of the object's pose. In another embodiment, computation platform131may predict an estimate of the current state of the object's pose and compare this state to the data from the sensors being fused, e.g., inertial and DF, to generate the error states. Accordingly, computation platform131may determine the object's pose in W. Further aspects of the operations performed by the computation platform131for fusing sensor data and/or determining an estimation of a pose are discussed below.

FIG.2is a diagram of the components of computation platform131, according to one example embodiment. As used herein, terms such as “component” or “module” generally encompass hardware and/or software, e.g., that a processor or the like may use to implement associated functionality. By way of example, computation platform131includes one or more components for fusing different signal types for spatial tracking. It is contemplated that the functions of these components may be combined in one or more components or performed by other components of equivalent functionality. In one instance, computation platform131comprises calibration module201, registration module203, data processing module205, training module207, machine learning module209, and presentation module211, or any combination thereof.

In one embodiment, calibration module201may include one or more calibration algorithms that utilize first order, affine calibrations to calibrate an accelerometer and a gyroscope. In one embodiment, during accelerometer calibration, calibration module201may controls a robot to position IMU115in five distinct points of constant gravitational acceleration to generate a 3×4 calibration matrix and an estimate of the gravity vector in the robotic coordinate system. In an exemplary embodiment, the robot is an ABB IRB 1200-7/0.7, and these five points in robotic joint space are as follows:
j0=(0.0.0.−35.2644.135),j1=(0.0.0.0.135).j2=(0.0.0.0.−45.90).j3=(0.0.0.0.−45.180).j4=(0.0.0.0.35.2644.−45).

With an initial assumption that the gravity vector is in the +z direction of the robotic coordinate system, the above joint space coordinates correspond, respectively, to unit gravity vectors of:

The four rn∈SO(3) rotations, such that αn=rn(αn−1), are given by:

During the calibration sequence, the robot may be set to the joint space coordinates noted above, accelerations reported by the subject IMU are measured and the mean of those measurements is calculated. In one instance, the mean vector of the reported acceleration vectors corresponding to αnas αn∈ R3, the 4×4 matrix may be defined as:

with units in counts, and the 3×4 matrix:
V≡[α1·α2·α3·α4]

with units of G's. An initial estimate of the affine calibration matrix for the accelerometer, Ca, is denoted by:
Cα=VA−1

with units of G's per count. Cαmay be used to get an improved normalized gravity vector go by:

which gives an updated {tilde over (V)} by:
{tilde over (V)}=[r1g0r2r1g0r3r2r1g0r4r3r2r1g0]

and an improved affine calibration matrix for the accelerometer by:
{tilde over (C)}α={tilde over (V)}A−1

In one embodiment, calibration module201may repeatedly iterate this process to improve both the estimate of the gravity vector in the robotic reference frame and Cα.

In one embodiment, calibration module201may include one or more algorithms that perform gyroscope calibration in a similar method. Hence, four points of known constant angular velocity may be used. In one example embodiment, a robotic motion may be set to provide angular velocity of 50 degrees/sec, and the four motions in joint space are (±indicating a movement of that joint from a positive angle to a negative angle, and vice versa):
j1=(0.0.0.±240.90.135).j2=(0.0.0.±240.45.90).j3=(0.0.0.±240.45.180).j4=(0.0.0.±240.−54.7356.−45).

These movements generate angular velocities with the same unit vectors as the an above. Analogous to the process above, define the 3×4 matrix:
U≡50V
with units deg/sec, and the mean vector of the reported angular velocity vectors corresponding to αnas ωn∈ R3, giving the 4×4 matrix:

The resulting 3×4 affine calibration matrix for the gyroscope is then given by:
Cω=UΩ−1

If the rotation of the Earth can be approximated as zero, no assumption analogous to the direction of the gravity vector is required for angular velocities, so the iterative steps and the fifth calibration vector may not be required for the gyroscope calibration. If the rotation of the Earth cannot be approximated as zero, analogous iterative steps and a fifth calibration vector can be employed to estimate the angular velocity associated with the Earth's rotation about its axis.

In one embodiment, registration module203may include one or more algorithms that map a coordinate system to a unit 3-sphere (S3) in elliptic space. In one instance, S3may be the largest unit sphere in four-dimensional space and elliptic space may be a spherical space with antipodal points identified. In other words, elliptic space may be the space of diameters of a sphere. This is a natural topology of unit quaternions mod Z2, which corresponds to rotations in 3-dimensional space.

In one example embodiment, during a hip registration technique, registration module203may define the mediolateral axis (generally ASIS-ASIS), which may be associated with the identity (qo=1 at t=0). The registration module203may then define the anterior pelvic plane (APP) by the mediolateral axis and a second line connecting the ASIS to the pubic symphysis (qr=ατ+bτi+cτj+dτkat at t=τ). These measurements may be translationally invariant, and the registration is relative to lines since the relevant geometry is that of diameters of a sphere in elliptic space.

In one instance, in four-dimensional elliptic space, the line representing a primary axis may be represented by a circle, i.e., a rotation about the axis of the registration tool, which must be projected to a point. This may be achieved by defining two angles (at arbitrary time step t=j).

In one instance, the choice of coefficients in this calculation may be tied to the conventions adopted in the calibration sequence outlined above. The angle γ may be closely associated with inclination, and the angle χ may be closely associated with version, as discussed below.

In one instance, each IMU update may provide a measurement (in counts) of the instantaneous angular velocity of a system at a given time (call it ω∈ R3). This signal may be corrected and converted to degrees per second using the calibration matrix according to

ω=Cω(ω_-1)
where Cwis from one of the above equations. This instantaneous angular velocity together with the amount of time since the previous measurement (δt) provides a unitary transformation matrix (defining ω≡√{square root over (Σωn2)} and the three normalized components of ω according toω=ω(ω1, ω2, ω3)T).

which represents the rotation of the system during δt. If St∈ SU(2) is a unitary transformation matrix that represents the aggregate transformation from time 0 to t. This matrix is updated at each time interval by left multiplication according to:
St+1=stSt,

which effects the discrete integration. The components of Stmap to the components of a quaternion by (taking q=a+bi+cj+dk), wherein:
a=Rc(S(1.1)).b=−Jm(S(2.1)).c=−Rc(S(2.1)).d=−Jm(S(1.1)).

When a second tracker is fixed to the pelvis to track the anatomy, the same discrete integration process above is repeated for the tracking IMU and the entire system is simply rotated by the anatomy IMU's deviation from the identity.

In one embodiment, the computation platform131may include or have access to an RNN, and data processing module205may be configured to fuse a Bluetooth DF signal with inertial measurement data using the RNN. In one instance, the RNN may fuse the two data streams in a very high dimensional space that may account for nonlinearities that would be impossible for an affine calibration to account for, and extremely difficult for conventional higher order calibration techniques. In one instance, data processing module205may utilize RNN with LSTM, a common implementation for RNNs with time-series inputs and outputs. Data processing module205may implement a twelve-dimensional input vector (X(t)) at each time step:

In the twelve-dimensional input vector (X(t)), Θ and Φ are elevation and azimuth outputs from the DF subsystem normalized as rad/π; αnand ωnare accelerometer and gyroscope raw counts converted to integers and normalized (two's compliment of output binary, divided by 214); and b, c, d correspond to the vector component of the quaternion representing aggregate rotation, in each case at time t. In other words, the input vector includes a fusion of raw DF data, processed DF data, and inertial measurement data. While a particular example of a format for such data is discussed above, it should be understood that any suitable format that may be used as input for the RNN may be used.

In one embodiment, training module207may provide a supervised machine learning module209by providing training data, e.g., direction data, inertial measurement data, and spatial data, that contains input and correct output, to allow machine learning module209to learn over time. The training may be performed based on the deviation of a processed result from a documented result when the inputs are fed into machine learning module209, e.g., algorithm measures its accuracy through the loss function, adjusting until the error has been sufficiently minimized. Training module207may conduct the training in any suitable manner, e.g., in batches, and may include any suitable training methodology. Training may be performed periodically, and/or continuously, e.g., in real-time or near real-time.

Although one or more examples above pertain to using an RNN, in various embodiments, machine learning module209may implement a machine learning technique such as decision tree learning, association rule learning, neural network (e.g., recurrent neural networks, convolutional neural networks, deep neural networks), inductive programming logic, support vector machines, Bayesian models, etc., to receive as input the training data from training module207. Machine learning module209may leverage one or more classification models trained to classify the training data and/or one or more prediction models trained to predict an outcome based on the training data. For example, machine learning module209may input the training data to classification models and/or prediction models to determine changes in direction data and inertial measurement data. Machine learning module209may use outcomes associated with the predictions or classifications to reinforce/retrain the models. Accordingly, machine learning module209may generate spatial tracking data based on the training data. In one embodiment, machine learning module209may use direction data and inertial measurement data to configure central unit100, peripheral unit113, and interface unit127.

In one example embodiment, in an AR environment, a controller is typically held in the user's hand, and therefore the distance between the controller and the AR headset typically does not exceed approximately the length of the user's arm. Machine learning module209may implement an error protocol that checks whether the estimated distance between the controller and the AR headset exceeds a threshold distance, e.g., comparable to a typical human arm length. If the distance exceeds the threshold distance, machine learning module209may determine that an error has likely occurred. If an error is detected, machine learning module209may take corrective actions such as, for example, re-initializing the system.

In one instance, presentation module211may enable a presentation of a graphical user interface (GUI) in interface unit127. The presentation module211may employ various APIs or other function calls corresponding to the applications on interface unit127, thus enabling the display of graphics pertaining to the position, orientation, and/or velocity of an object. In one instance, presentation module211may cause interfacing of information with the users to include, at least in part, one or more annotations, text messages, audio messages, video messages, or a combination thereof. For example, presentation module211may cause an audio/visual presentation in interface unit127to depict the position or orientation of an object determined by data processing module205. In another instance, presentation module211may include a data access interface configured to allow users to access, configure, modify, store, and/or download information to interface unit127or any other type of data device.

The above presented modules and components of computation platform131may be implemented in hardware, firmware, software, or a combination thereof. Though depicted as a separate entity inFIG.2, it is contemplated that computation platform131may be implemented for direct operation by respective interface unit127. The various executions presented herein contemplate any and all arrangements and models.

FIG.3illustrates an exploded view of an exemplary peripheral unit113ofFIG.1, according to aspects of the present disclosure. In one embodiment, peripheral unit113may include rechargeable battery301and printed circuit board (PCB)303disposed within housing300. For example, housing bottom305may define a cavity sized, shaped, and/or otherwise configured to receive one or more internal components of peripheral unit113, such as, rechargeable battery301and PCB303. In some embodiments, housing bottom305may include engagement mechanisms that are configured to mate with corresponding engagement mechanisms of housing top307. Although not shown, it should be appreciated that additional and/or fewer engagement mechanisms may be positioned along additional and/or fewer surfaces or walls of housing bottom305and housing top307without departing from the scope of this disclosure.

Engagement mechanisms may include various suitable features for coupling housing bottom305and housing top307, for example, a magnet, an adhesive, a clip, a clasp, a tab, a hook, a raised or recessed surface, and more. In one instance, housing bottom305may secure rechargeable battery301and PCB303before soldering the antenna and/or bonding the top housing. The base of housing bottom305may also include a patterned protrusion309, e.g., designed with an m4×0.4 millimeters (mm) thread, that is configured to screw easily into a pre-drilled hole, e.g., a 3 mm pre-drilled hole, or snap onto tracker pins or tool connectors.

In one embodiment, rechargeable battery301may include, but is not limited to, a ferric or lithium-ion battery, a nickel-cadmium battery, a nickel-metal hydride battery, and more. In another embodiment, rechargeable battery301may comprise a plurality of rechargeable batteries that are coupled together in series within housing300. Although shown as having a circular shape, rechargeable battery301may have various other shapes without departing from the scope of this disclosure. By way of example, rechargeable battery301may have a rectangular, a square, a cylindrical, a triangular, a pentagonal, and various other cross-sectional profiles.

In one embodiment, rechargeable battery301and PCB303may be integrally attached to one another by electrical connectors, e.g. wires, such that PCB303may operate using electrical power stored in rechargeable battery301. Although PCB303is placed on top of rechargeable battery301, it is understood that PCB303may be positioned in any other configuration.

In one embodiment, PCB303may include a substrate on which conductive traces are positioned. At locations on the conductive traces, connection mounting pads are exposed to allow the attachment of electronic devices, such as integrated circuits. A top layer of PCB303is commonly a solder mask, i.e., a thin layer of material that is resistant to wetting by the solder. The solder mask exposes the connection mounting pads through holes in the solder mask. The conductive trace then extends above the level of the solder mask. In one example embodiment, PCB303may be a 4-layer Rigid PCB with 0.5 mm thickness that may include pads for charging pogo pins that make contact during assembly and plated holes for easy battery tab attachment. An antenna is soldered to the pads near a Bluetooth radio and a matching circuit. It should be appreciated that the number of layers for PCB303is selected for simplicity of illustration and may be assembled in various other configurations.

In one embodiment, housing top307may include at least one aperture in the surface for exposing recharge pogo pins313that contacts the pad on PCB303. In one instance, recharge pogo pins313may allow peripheral unit113to be recharged externally. It is understood that the configuration of recharge pogo pins313may be adapted to connect peripheral unit113with one of a number of electrical contacts.

In one embodiment, Bluetooth antenna315may be arranged on housing top307. In one instance, housing top307may include patterns, depressions, e.g., concave dimples, to receive and secure Bluetooth antenna315. Bluetooth antenna315may be formed of a magnetic wire, a flex PCB, a punched metal, or any other suitable materials. In one instance, Bluetooth antenna315may be an external quarter-wave loop antenna configured for maximum distance from ground planes and metal components that block the Bluetooth signal. The length of Bluetooth antenna315is relevant with its frequency of operation, for example, Bluetooth antenna315may be 31.5 mm long and may be tuned with a matching circuit on PCB303. Bluetooth antenna315may be coated with suitable materials to reduce impedance changes from touch/fluids. It is understood that the configuration of Bluetooth antenna315may vary per requirement.

FIG.4shows a top view of PCB303of peripheral unit113, in accordance with some aspects of the present disclosure. As depicted, PCB303may include locator holes401, Bluetooth Low Energy (BLE) Light-emitting diode (LED)403, crystal405, ground hole407, power hole409, charging LED411, IMU413, charging integrated circuit (IC)415, pads417, and antenna pad419. It is understood that configuration400is illustrative of at least one embodiment and PCB303may be formed in any other configuration per requirement.

In one embodiment, locator holes401may allow accurate positioning of PCB303in relation to other components. In one instance, locator holes401may be drilled in panels of PCB303to achieve high accuracy, however, it is understood that any other methods to form locator holes401may be implemented. For example, accurately locate PCB303to housing300or PCB303to a j-link pin programmer. The number, size, and placement of locator holes401are dependent on the requirement of PCB303and its components.

In one embodiment, BLE LED403may include a single LED or a plurality of LEDs, e.g., two, three, four, or more LEDs that are operably coupled to PCB303. In one instance, the power stored in rechargeable battery301may cause BLE LED403to operate at various levels of intensity (e.g., low, medium, high, etc.), illumination patterns (e.g., flashing, pulsing, etc.), and colors. For example, BLE LED403may be configured to display information indicative of a connectivity status, wherein BLE LED403may blink in a fast pattern while trying to connect to a component/system or may blink in a slower pattern while connected. For example, BLE LED403may be configured to illuminate and/or display different colors indicative of said information.

In one embodiment, crystal405may include a quartz crystal element and an oscillation circuit using this crystal element. Crystal405may set the frequency of clocks used for high frequency and low frequency, and may transmit clock signals to corresponding layers of PCB303. Crystal oscillator405may transmit very precise and stable frequencies which is important for high accuracy clocks and low power usage.

In one embodiment, ground hole407and power hole409are plated holes for attaching rechargeable battery301to PCB303. In one instance, rechargeable battery301may be soldered via ground hole407and power hole409to PCB303. It is to be understood that the number, size, and placement of ground hole407and power hole409may vary per requirement.

In one embodiment, Charging LED411may include a single LED or a plurality of LEDs, e.g., two, three, four, or more LEDs that are operably coupled to the charge circuit of PCB303. In one instance, the power stored in rechargeable battery301may cause Charging LED411to operate at various levels of intensity (e.g., low, medium, high, etc.), illumination patterns (e.g., flashing, pulsing, etc.), and colors. For example, Charging LED411may be configured to display information indicative of a charge status, e.g., charging LED411may be configured to illuminate and/or display different colors at various levels of intensity to indicate the charge status.

In one embodiment, IMU413may measure and report the specific linear acceleration and angular velocity experienced in a local reference frame. IMU413may include a gyroscope, an accelerometer, a magnetometer, and/or any other suitable sensors. For example, the gyroscope may measure angular velocity around the x, y, and z axes in its local frame; the accelerometer may measure and report specific linear acceleration along the x, y, and z axes in its local frame; the magnetometer may measure the magnetic field surrounding the system, e.g., 9-axis IMU. In one example embodiment, IMU413may be Bosch® BMI 270 IMU with an accelerometer and gyroscope that is connected to Nordic® Semiconductor nRF52833 via a serial peripheral interface (SPI).

In one embodiment, charging IC415may control the power that is charging rechargeable battery301for the safety of PCB303. In one example embodiment, charging IC415may set the power at a pre-determined threshold level, e.g., 30 milliampere (mA), to complete the charging of rechargeable battery301at a pre-determined time threshold, e.g., 2 hours.

In one embodiment, pads417may be configured to contact pogo pins313, and pogo pins313may be soldered to pads417. In one instance, electroless nickel immersion gold (ENIG) surface plating may be applied to pads417to protect from corrosion due to repeated assembly. ENIG surface plating may provide good oxidation resistance, excellent surface planarity, and may allow for easy soldering which may result in superior electrical performance of PCB303.

In one embodiment, antenna pad419may be configured to contact Bluetooth antenna315, and Bluetooth antenna315may be soldered to antenna pad419. It is understood that any other methods to attach Bluetooth antenna315to antenna pad419may be implemented. In one example embodiment, antenna pad419may be positioned within close proximity to IC and may have a matching circuit.

FIG.5illustrates an exploded view of housing300, according to aspects of the present disclosure. Housing300may be formed of various suitable materials, including, for example, plastic. In one embodiment, housing bottom305may include PCB planes501, locator pins503, glue rib505, and tab gap507. It is understood that housing bottom305may be formed in any other configuration per requirement.

In one embodiment, PCB planes501may be sized and shaped to receive PCB303, e.g., PCB planes501may have a flat configuration to accommodate PCB303during the assembly. PCB planes501may have various sizes and/or shapes relative to the size and shape of PCB303. The connection or coupling of PCB planes501and PCB303must be accurate due to the importance on PCB303being a set distance from housing top307.

In one embodiment, locator pins503may be tapered pins that are configured to accurately align PCB303to housing300. Locator pins503may be designed to fit through the apertures in the surface of housing top307during the assembly of the various components of peripheral unit113. In one instance, locator pins503may be a press-fit or a snap-fit, however, any other engagement mechanisms may be implemented.

In one embodiment, the outer diameter of housing bottom305may comprise glue rib505, e.g., one or more depressions, recesses, and/or cavities, sized and shaped to receive an adhesive, e.g., glue, to form a glue channel, e.g., retaining up to 1 mm of glue. In one instance, the glue channel may attach housing bottom305to housing top307, thereby providing a sufficiently air-tight sealing that prevents water from leaking into housing300.

In one embodiment, tab gap507may be an aperture in the sidewalls of housing bottom305to accommodate a tab that runs alongside rechargeable battery301. The shape and size of tab gap507may be configured based on dimension information of the tab that runs alongside rechargeable battery301and housing bottom305. In one instance, tab gap507may allow orientation determination of housing bottom305.

In one embodiment, housing top307may include antenna channel509, pin holes511, and antenna pass through513, however, it is understood that housing top307may be formed in any other configuration per requirement. Antenna channel509may be an aperture, e.g., a swept cut, on the surface of housing top307through which Bluetooth antenna315may be bonded or glued to housing top307. The shape, size, number, and placement of antenna channel509may be configured based on dimension information of Bluetooth antenna315.

In one embodiment, pin holes511are a plurality of holes on the surface of housing top307. The recharge pogo pins313may be pressed through pin holes511. The shape, size, number, and placement of pin holes511may be adjusted based on the dimension information of recharge pogo pins313to provide an air-tight coupling to prevent any leakage. In one instance, adhesives may added around the coupling area of recharge pogo pins313and pin holes511per requirement.

In one embodiment, antenna pass through513may be an opening on the surface of housing top307for inserting the wire of Bluetooth antenna315, and the inserted portion of the wire may be soldered to PCB303during assembly. The shape, size, number, and placement of antenna pass through513may be accommodated based on the dimension information of the wire of Bluetooth antenna315.

As illustrated inFIG.6, antenna array101may be a two-dimensional array of Bluetooth antennas configured to perform angle of arrival (AoA) measurements. In one instance, AoA measurements may be consistent with Bluetooth Core Specification 5.1. A portion of the signal emitted by peripheral unit113may be a CTE, which is an unwhitened signal representing a series of binary 1. In this manner, CTE waves emitted by antenna117may have an unmodulated frequency to provide a stable wavelength for AoA calculations.

In one instance, during CTE, central unit100may perform in-phase and quadrature (IQ) sampling on two or more antenna arrays101, to provide a measurement of the amplitude (I) and phase (Q) of an incoming CTE signal, attributing each IQ sample to a specified antenna array101p, which may result from a single IQ sampling sequence or result from filtering a number of such sequences. As illustrated inFIG.8, measurements (Iα,Qα) and (Iβ,Qβ) associated with antenna array101αand antenna array101βdefine a relative phase (ψαβ), which may be calculated as follows:

As illustrated inFIG.7, ∥pwb∥ is assumed to be sufficiently large relative to the distance between antenna array101α,101βsuch that an RF wave front propagating from antenna117may be approximated as a flat plane. The distance (dα, β) between antenna array101αand antenna array101βis less than one-half the wavelength (λ) of the propagating wave to avoid aliasing, where λ is approximately 12.5 cm for a Bluetooth signal. In this illustration, the configuration antenna array101αis closer to antenna117than antenna array101β, and the propagating wave travels approximately λψαβfurther to reach antenna array101β. In one instance, angle Θαβat101βbetween vw(ηα,ηβ)and vw(dα,ηβ)can be calculated as:

Under this simplified plane model Θαβis also the angle at antenna101αbetween vw(ηβ, ηα)and vw(d,ηα).

In one instance, the determination of Θαβis an estimate that pwdlies in a cone formed by all rays having a positive or zero component vw(ηβ, ηα)from pwηβwith angle Θαβrelative to vw(ηβ, ηα). As illustrated inFIG.9, both antenna101αand antenna1017are also closer to antenna117than101β. In a simplified planar model, if vw(ηγηβ)is not colinear with vw(ηαηβ)a determination of Θγβlocalizes the estimate to two rays lying within the previous estimation cone. A selection of one of these two rays may be facilitated by inertial measurements, as discussed below, if the relevant area being tracked lies on both sides of the plane defined by antenna array101. In the present embodiment, vW(ηαηβ)is orthogonal to vw(ηγηβ)and the origin of W lies within the parallelogram defined by vw(ηαηβ)and vw(ηγηβ)such that Θαβand Θγβcan be interpreted as an azimuth (ηw) and elevation (ζw) in W. In this manner, selected ray defines projection π(gwd), which is an estimate of the direction of D relative to W. More particularly, projection π is a surjective map from SE(3) onto a unit 2-sphere:
π:SE(3)→S2,π(gwd)→(ηα·ζγ)
In an embodiment, vw(ηαηβ)is neither orthogonal nor collinear relative to vw(ηγηβ)and π(gwd) is defined over a non-orthogonal basis. In another embodiment, propagating a wave emitted by antenna117is modeled as having non-planar wavefronts with a shape characterized prior to use. In this embodiment, a prior estimate of gwdis utilized to estimate the shape of the portion of the propagating wave in the proximity of antennas101α,101β, and101γto improve a determination of π(gwd). In a further embodiment, a propagating wave emitted by antenna117is modeled as having spherical wavefronts and a prior estimate of ∥pwd∥ is utilized to improve a determination of π(gwd).

In one embodiment, if antenna array101includes more than three antennas10ρ multiple such projections may be used to improve a directional estimation of B relative to frames with fixed and pre-determined poses relative to W. In practice, signal reflections and other noise sources may complicate the simplified model described above. The various filtering, fusion and super-resolution algorithms known in the art, e.g., Multiple Signal Classification (MUSIC), propagator direct data acquisition (PDDA), estimation of signal parameters via a rotational invariance technique (ESPRIT), and/or subtracting signal subspace (SSS), may be applied to a number of IQ samples to provide an improved determination of π(gwd) and similar directional estimates consistent with the principles of the simplified model.

In one instance, directional estimates from two frames with distinct origins may be used to determine pwb. When the distance between two such origins is significantly smaller than ∥pwb∥ the determination of pwbmay be sensitive to small errors in directional estimates. As illustrated inFIG.9, a secondary antenna array901, which defines frame y, includes a number of antennas90χand is configured such that the distance between antenna arrays101and901is larger than a distance between any two antennas101ρand is larger than a distance between any two antennas901χ. In the disclosed embodiment gwyand gwmxare fixed and determined prior to use. In one embodiment, secondary antenna array901may contain a radio, microprocessor, and/or RF switch to enable wireless communication with peripheral unit113and is in wired communication, via communication network129, with central unit100. In an alternate embodiment, a secondary central unit may include an IMU and gwymay be determined and updated dynamically.

As illustrated inFIG.9, one or more antennas901ν,901μ, and901φmay define distinct reference frames Mν, Mμ, and Mφ, respectively, with gwm, gwmμ, and gwmφfixed and determined prior to use. By employing a simplified planar model, RF wavefront propagating from antenna array117reaches the one or more antennas901ν,901φprior to antenna901μ, and determination of Θνμand Θφμproceed (as in the equation described above). In the illustrated embodiment, vw(mmν,mμ)and vw(mγ,mμ)are not collinear, and the origin of y lies within the parallelogram defined by vw(mνmμ)and vw(mφmα)such that determination of Θνμand Θνμdefines π(gyd). In one instance, where rays defined by π(gwd) and π(gyd) intersect, this intersection localizes a determination of pwdand pydto a single point. The presence of errors may generally cause such two rays to be skew with a unique line perpendicular to both rays, and the midpoint of the line segment between the two rays along such perpendicular line localizes a determination of pwdand pydto a single point.

Within a given time interval, a set of determinations of pwbmay be calculated depending on the number and arrangement of antennas101ρand antennas901χ. This set of determinations of pwdand pydmay be averaged over, or more sophisticated filtering may be employed, to improve the estimation of pwdand pyd.

FIG.10depicts an exemplary method for algorithmically calibrating and initializing one or more signals to estimate a pose of an exemplary peripheral unit. As illustrated inFIG.10, prior to use, peripheral unit113may undergo a calibration sequence (step1000) to characterize IMU115sensitivity, bias, and/or zero-mean noise, to correct any non-orthogonality in IMU115axes, and to determine gcband gbd. Prior to use, central unit100may also undergo a calibration sequence (step1000) to characterize IMU107sensitivity, bias, and/or zero-mean noise, to correct for any non-orthogonality in IMU107axes, and to determine gwt, gwnp, gwy, and gwmx, as applicable. During calibration either one or both of central unit100and peripheral unit113may be involved in a sequence to determine gtc. In an alternate embodiment, gwt=gwc.

In one instance, during use, an initialization step (step1003) may begin with coupling the peripheral unit113to central unit100by attaching coupling feature125to mount111. The coupling feature125and mount111may be configured, such that during attachment, B is in a fixed and pre-determined pose relative to W, which is (gwb)0. The coupled peripheral unit113and central unit100may be maintained in a substantially stationary configuration relative to the Earth for the duration of initialization, and acceleration measured by IMU115may be used to define a vector representing acceleration due to gravity (Γw∈ R3) in W, which is taken to be constant after initialization, at least in the present embodiment. An angular velocity measured by IMU107during initialization may be used to define Earth's angular velocity (Ξw∈ so(3)) in W. In another embodiment, a correlation between IMU107and IMU115may be utilized to distinguish Ξwand Γwfrom IMU115bias, and the data that is collected may be utilized to update IMU115bias parameters.

A system state (s.) is defined at time t=τ by:
ST={(ωwbw)T,(Ωwb)T,(αwbb)T,(νwbw)T,(Pwb)T},

Wherein αwbbis a vector representing the linear acceleration of B relative to W as observed in B. To enable efficient calculations, gwbis represented in homogenous coordinates over GL(4, R) as:

An IMU115measurement (mr=[wwbb)T,(αwbb)T] at time r provides a measurement indicating the value of these states during a time interval from t−Δτ=Σ−1 to t=τ according to:

Transformation of Vwbbto Bwbwtakes the from Adgwb(Bwbb)=gwbVwbb(gwb)−1=Vwbw, which enables the use of a local measurement in B to inform a dead reckoning system state update for τ>0 according to (denoting st−1←st, and employing a generalization of the midpoint rule for discrete integration):

and (J1), is the left Jacobian of Ωwbat t=τ given by (denoting the identity of GL(3, R) by I)

In one embodiment, the system may include a plurality of secondary peripheral units, defining frames H∈, configured in a manner substantially similar to peripheral unit113. In this alternative embodiment B is associated with a virtual spatial frame, and virtual representations on interface unit127of H∈utilize gbh∈. In applications that do not require a spatial frame stationary relative to Earth, and in which ∥pbhe∥ is smaller than ∥pwb∥, positively correlated errors in gwband gwh∈may be reduced in gbh∈.

In this manner at time r an estimate for ((pwb)τ)AoAis available from AoA data independent of an estimate for ((gwb)τ)IMUavailable from inertial measurement data. In the present embodiment ((pwb),)AoAis updated after κ Δt intervals. Accordingly sT−κ← . . . ←st−1←stare state updates (step1005) based on data from

kΔ⁢t
inertial measurements in the form of an inner loop. In one embodiment, this inner loop is an extended Kalman filter or any variety of Kalman filter such as, e.g., an unscented Kalman filter. In the present embodiment, the number of Δt contained in each κ may vary. It should also be understood that Δt may vary with each IMU115measurements. In an alternative embodiment, Δt may be measured at each update and is an element of st.

Wherein (bIMU)Tmay be a dynamically updated IMU115bias. The updated K-superstate is an output (step1009) to interface unit127. In an alternate embodiment, outer loop updates K-superstate defined by kK=(K, St−k,St,(ηw)τ, (ζw)τ, (bIMU)τ).

FIG.11illustrates an exemplary process1100for spatial tracking using a hybrid signal, such as in the various examples discussed above. In various embodiments, computation platform131may perform one or more portions of process1100and may be implemented in, for instance, a chip set including a processor and a memory as shown inFIG.12. Although process1100is illustrated and described as a sequence of steps, it is contemplated that various embodiments of process1100may be performed in any order or combination and need not include all of the illustrated steps.

At step1101, computation platform131may periodically receive a plurality of signals from central unit100and peripheral unit113. In one instance, computation platform131may receive inertial measurement data from IMU115of peripheral unit113and a CTE from radio119of peripheral unit113. As described herein, IMU115of peripheral unit113may include, among other components, an accelerometer and a gyroscope. The inertial measurement data may include accelerometer data, gyroscope data, and additionally or optionally, other sensor data. In one instance, the inertial measurement data is an average of inertial measurements taken by the IMU115over a course of a period for the signal. In one instance, the inertial measurement data may represent an estimated pose of an object in a reference frame associated with peripheral unit113.

At step1103, computation platform131may determine, based on the CTE, direction data for peripheral unit113. In one instance, determining the direction data for peripheral unit113may include IQ sampling of the CTE using a plurality of antennas of antenna array101of central unit100. In one example embodiment, computation platform131may utilize angular phase-shifts that occur between antennas as they receive (AoA) or transmit (AoD) RF signals. With the use of antenna arrays at either side of the communication link, phase shift data may be determined and from this the location may be calculated. For example, AoA system features the antenna array on the receiver side, so that by measuring the phase-shift of the incoming signal, the receiver can determine the direction of the incoming signal. Whereas, AoD uses the antenna array to direct the transmitted signal at a given angle.

In one embodiment, computation platform131may perform IQ sampling to measure the phase of radio waves incident upon an antenna at a specific time. In the AoA approach, the sampling process may be applied to each antenna in the array, one at a time, and in some suitable sequence depending on the design of the array. To support IQ sampling and the use of IQ samples by higher layers in the stack, at the link layer, CTE is appended to the packet after the CRC. The purpose of the CTE field is to provide constant frequency and wavelength signal material against which IQ sampling is performed. This field contains a sequence of Is, is not subject to the usual whitening process and is not included in the CRC calculation.

At step1105, computation platform131may determine, based on the direction data and the inertial measurement data, spatial tracking data for peripheral unit113. In one instance, the spatial tracking data includes 6-axis estimation or position and orientation of peripheral unit113. In one embodiment, computation platform131may determine the spatial tracking data for peripheral unit113in response to a disruption in an optical tracking associated with peripheral unit113, wherein the disruption is one or more of interruption in the optical tracking, discontinuity in the optical tracking, jitter above a pre-determined threshold, or a combination thereof. Computation platform131may update, correct, re-calibrate, reorient, or a combination thereof the optical tracking based upon the determined spatial tracking data.

In one embodiment, computation platform131may utilize one or more algorithm to determine the spatial tracking data using the direction data and the inertial measurement data, such as the exemplary method discussed above with regard toFIG.10.

In one embodiment, computation platform131may utilize a trained machine learning model to generate spatial tracking data. In one instance, the trained machine learning model may be trained using training data, e.g., initial data that may be used to develop a trained machine learning model, from which the model creates and refines its rules. Training data may be labeled, e.g., tagged to call out classifications or expected values the trained machine learning model is required to predict, or unlabeled so the model will have to extract features and assign clusters autonomously. In one instance, training data may include a training direction, training inertial measurement data, and training spatial data, that is representative of the sensory measurements of central unit100and peripheral unit113. The training data trains or retrains the machine learning model to learn their relationships, and to generate the spatial tracking data in response to the input of the direction data and the inertial measurement data. Training the machine learning model may be an iterative process and may use a variety of optimization methods depending upon the chosen model.

Unlike algorithms that are rule-based, follow a set of instructions to accept input data and provide output, and do not rely on historical data, the trained machine learning model observe their training data with past observations to make predictions.

FIG.12is a simplified functional block diagram of a computer1200that may be configured as a device for executing the methods ofFIG.11, according to exemplary embodiments of the present disclosure. For example, computer1200may be configured as computation platform131and/or another system according to this disclosure. Any of the systems herein may be computer1200including, for example, data communication interface1220for packet data communication. Computer1200also may include a central processing unit (“CPU”)1202, in the form of one or more processors, for executing program instructions. Computer1200may include internal communication bus1208, and storage unit1206(such as ROM, HDD, SDD, etc.) that may store data on computer readable medium1222, although computer1200may receive programming and data via network communications. Computer1200may also have memory1204(such as RAM) storing instructions1224for executing techniques presented herein, although instructions1224may be stored temporarily or permanently within other modules of computer1200(e.g., processor1202and/or computer readable medium1222). Computer1200may also include input and output ports1212and/or display1210to connect with input and output devices such as keyboards, mice, touchscreens, monitors, displays, etc. The various system functions may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load. Alternatively, the systems may be implemented by appropriate programming of one computer hardware platform.