METHOD FOR CALCULATING THE ANGLE OF INCLINATION OF MAGNETIC FIELD IN A SENSOR COORDINATION SYSTEM
20170059324 ยท 2017-03-02
Assignee
Inventors
- Dong Yoon Kim (Ithaca, NY, US)
- Byung Ki KIM (Seongnam-si, KR)
- Seung Hwan Park (Sejong-si, KR)
- Kyoung Suck Ki (Cheongju-si, KR)
- Hyung Sik Shin (Seoul, KR)
- Jo An Na (Seoul, KR)
- Young Joon KIM (Seoul, KR)
- Yeon Soo CHOI (Seongnam-si, KR)
Cpc classification
G01C17/16
PHYSICS
International classification
G01C19/5776
PHYSICS
G06F17/16
PHYSICS
G01R33/02
PHYSICS
Abstract
A method for calculating an angle of inclination of a magnetic field in a sensor coordination system includes measuring a magnetic field vector using a magnetometer, measuring an acceleration vector using an accelerometer, determining whether the sensor coordination system is in a moving state or a stationary state using the acceleration vector, and calculating the inclination angle of the magnetic field using the magnetic field vector and the acceleration vector, in response to the determining indicating the stationary state.
Claims
1. A method for calculating an angle of inclination of a magnetic field in a sensor coordination system, comprising: measuring a magnetic field vector using a magnetometer; measuring an acceleration vector using an accelerometer; determining whether the sensor coordination system is in a moving state or a stationary state using the acceleration vector; and calculating the inclination angle of the magnetic field using the magnetic field vector and the acceleration vector, in response to the sensor coordinate system being determined to be in the stationary state.
2. The method for calculating the angle of inclination of the magnetic field of claim 1, wherein the acceleration vector comprises a gravitational acceleration component and a linear acceleration component.
3. The method for calculating the angle of inclination of the magnetic field in a sensor coordination system of claim 1, wherein the sensor coordination system is determined to be in the stationary state in response to a following Equation being satisfied:
|Acca.sub.g|Ts.sub.value, wherein a.sub.g, Acc and Ts.sub.value denote a gravitational acceleration value, a sensed acceleration vector, and a threshold value, respectively.
4. The method for calculating the angle of inclination of the magnetic field in a sensor coordination system of claim 3, wherein the acceleration vector has as its value a moving average value vector that is a moving average value regarding a size value of a number N of acceleration vectors according to a following Equation:
5. The method for calculating the angle of inclination of the magnetic field in a sensor coordination system of claim 3, wherein the threshold value is a fixed value or a variance value regarding a number N of latest measured acceleration vectors that is calculated according to a following Equation:
6. The method for calculating the angle of inclination of the magnetic field in a sensor coordination system of claim 1, wherein the inclination angle of the magnetic field is calculated by a following Equation:
=/2sin.sup.1(|n.sub.gn.sub.m|), wherein denotes the angle of inclination of the magnetic field, n.sub.m denotes the magnetic field vector, and n.sub.g denotes the acceleration vector.
7. The method for calculating the angle of inclination of the magnetic field in a sensor coordination system of claim 1, wherein the inclination angle of the magnetic field is calculated by a following Equation:
=/2cos.sup.1(n.sub.g.Math.n.sub.m), wherein denotes the angle of inclination of the magnetic field, n.sub.m denotes the magnetic field vector, and n.sub.g denotes the acceleration vector.
8. The method for calculating the angle of inclination of the magnetic field in a sensor coordination system of claim 1, wherein the sensor coordination system comprises the magnetometer and the accelerometer.
9. The method for calculating the angle of inclination of the magnetic field in a sensor coordination system of claim 1, further comprising using a previously calculated inclination angle of the magnetic field as an estimate of the inclination angle of the magnetic field, in response to the sensor coordinate system being determined to be in the moving state.
10. An apparatus for calculating an angle of inclination of a magnetic field comprising: a magnetic sensor configured to measure a magnetic sensor vector; an accelerometer sensor configured to measure an acceleration vector; a moving state determiner configured to determine whether the apparatus is in a moving state or a stationary state using the acceleration vector; and an inclination angle calculator configured to calculate the inclination angle of the magnetic field using the magnetic vector and the acceleration vector, in response to determining that the apparatus is in a stationary state.
11. The apparatus for calculating the angle of inclination of the magnetic field of claim 10, wherein the acceleration vector comprises a gravitational acceleration component and a linear acceleration component.
12. The apparatus for calculating the angle of inclination of the magnetic field of claim 10, wherein the moving state determiner is configured to determine the stationary state in response to a following equation being satisfied:
|Acca.sub.g|Ts.sub.value, wherein a.sub.g, Acc and Ts.sub.value denote a gravitational acceleration value, a sensed acceleration vector and a threshold value, respectively.
13. The apparatus for calculating the angle of inclination of the magnetic field of claim 12, wherein the acceleration vector has as its value a moving average value vector that is a moving average value regarding a size value of a number N of acceleration vectors according to a following Equation:
14. The apparatus for calculating the angle of inclination of the magnetic field of claim 12, wherein the threshold value is a fixed value or a variance regarding a number N of latest measured acceleration vectors that is calculated according to the following Equation:
15. The apparatus for calculating the angle of inclination of the magnetic field of claim 10, wherein the inclination angle of magnetic field is calculated using the following equation:
=/2sin.sup.1(|n.sub.gn.sub.m|), wherein denotes the angle of inclination of the magnetic field, n.sub.m denotes the magnetic field vector, and n.sub.g denotes the acceleration vector.
16. The apparatus for calculating the angle of inclination of the magnetic field of claim 10, wherein the inclination angle of magnetic field is calculated using the following equation:
=/2cos.sup.1(n.sub.g.Math.n.sub.m), wherein denotes the angle of inclination of the magnetic field, n.sub.m denotes the magnetic field vector, and n.sub.g denotes the acceleration vector.
17. The apparatus for calculating the angle of inclination of the magnetic field of claim 10, wherein the inclination calculator uses a previously calculated inclination angle of the magnetic field as an estimate of the inclination angle of the magnetic field, in response to determining that the apparatus is in the moving state.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038] Throughout the drawings and the detailed description, the same reference numerals refer to the same elements. The drawings may not be to scale, and the relative size, proportions, and depiction of elements in the drawings may be exaggerated for clarity, illustration, and convenience.
DETAILED DESCRIPTION
[0039] The following detailed description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. However, various changes, modifications, and equivalents of the methods, apparatuses, and/or systems described herein will be apparent to one of ordinary skill in the art. The sequences of operations described herein are merely examples, and are not limited to those set forth herein, but may be changed as will be apparent to one of ordinary skill in the art, with the exception of operations necessarily occurring in a certain order. Also, descriptions of functions and constructions that are well known to one of ordinary skill in the art may be omitted for increased clarity and conciseness.
[0040] The features described herein may be embodied in different forms, and are not to be construed as being limited to the examples described herein. Rather, the examples described herein have been provided so that this disclosure will be thorough and complete, and will convey the full scope of the disclosure to one of ordinary skill in the art.
[0041] Certain examples are now described in greater detail with reference to the accompanying drawings. In the following description, the same drawing reference numerals are used for the same elements, even in different drawings. The matters defined in the description, such as detailed constructions of terms and elements, are provided to assist in a comprehensive understanding of the present examples. Accordingly, it is apparent that it is possible for the examples to be carried out without those specifically defined matters. Also, well-known functions or constructions are not described in detail to avoid obscuring the examples with unnecessary detail.
[0042] While the expressions such as first or second are potentially used to refer to various elements, the elements are not intended to be limited by the expressions. Such expressions are used only for the purpose of distinguishing one element from the other when referring to such elements.
[0043] The expressions presented are used herein only for the purpose of explaining specific examples and are not intended to place limits on the present examples. An expression in singular form also encompasses plural meaning, unless otherwise specified. Throughout the description, the expression comprise or have is used only to designate the existence of a characteristic, number, step, operation, element, component or a combination thereof which is described herein, but not to preclude possibility of existence of one or more of the other characteristics, numbers, steps, operations, elements, components or combinations of these or other appropriate additions.
[0044] Spatial words, such as below, beneath, lower, above and upper are used to conveniently recite a correlation between one element or features with respect to other elements or features, as illustrated in the drawings. When spatial terminology is used as referring to a direction as illustrated in the drawing, if the illustrated element is upside down, the element that was recited as below and beneath is also potentially considered to be above or on top of another element. Thus, examples presented below include all such instances related to the directions of below and above. An element is also potentially aligned in another direction, and in such examples, spatial words are interpreted according to the alignment.
[0045] The present disclosure is described more fully subsequently with reference to the accompanying drawings, in which embodiments are shown and described further.
[0046] The embodiments provide a method for calculating an inclination angle of a magnetic field with disturbance accurately represented when a surrounding disturbance is generated or when a sensor coordination system is not located horizontally on a horizontal plane.
[0047] In particular, the embodiments relate to a method for calculating an inclination angle of a magnetic field with disturbance accurately represented and an apparatus adopting such a method, which improves accuracy of magnetic field inclination angle measurement by determining a moving state of the sensor coordination system using accelerometer information and calculating inclination angle information based on the determination result.
[0048] Hereinafter, the technical expression, a magnetic field, which is used in the present disclosure, refers to a magnetic field with a disturbance included, unless stated otherwise.
[0049] A method for calculating the angle of inclination of a magnetic field and apparatus using the method according to an embodiment calculates an inclination angle of an accurate magnetic field based measurements of a magnetic sensor and an accelerometer.
[0050] Thereby, the embodiments are potentially used for realizing a virtual gyroscope using a combination of an acceleration sensor and a magnetic sensor. In particular, the embodiments are able to extract an angle and an angular velocity of an object in a three-dimensional space without using a physical gyroscope. Also, embodiments are able to improve a degree of precision when calculating the angle and angular velocity of the object.
[0051] Furthermore, the embodiments are potentially advantageous in providing accurate information for compass even in a device having an inclined position with a random or arbitrary angle that is not level.
[0052]
[0053] As illustrated in the example of
[0054] Further, referring to
[0055]
[0056]
[0057] In this example, an embodiment provides a method for calculating an inclination angle between the tilted sensor plane 200 and the measured magnetic field line 210 affected by a disturbance in the sensor coordination system 150.
[0058] The various kinds of disturbances exist in various settings. For example, when a speaker itself is the source of magnetic disturbance up to several Gauss, as a measure of magnetic field strength, and thus such magnet disturbance is easily hundreds to thousands times of the field strength of a geomagnetic field. And there are various other sources of disturbances not only around such electronic devices that explicitly include magnets but also a power line and WIFI line and so on, in that electronic devices generate electromagnetic fields as part of their operation. Further, metal also distorts and changes a magnetic field. Various metal products such as steel-framed structures, for example, vehicles are also included in this category. Thus, if such disturbance is not managed effectively, a global magnetic field is no longer useful as a reference because all of the other types of disturbance prevent reliable measures of the global magnetic field.
[0059] Hereinafter, a driving method according to the present embodiments is illustrated in the examples of
[0060]
[0061] As illustrated in the example of
[0062] First, in step S10, the method measures the magnetic field vector information n.sub.m. For this step, a magnetic sensor is able be used to perform the measurement. For example, a magnetic sensor unit or magnetic sensor 10 of
[0063] In general, the magnetic field intensity depends upon a user position or a position of the magnetic sensor. The magnetic field intensity herein is referred to as M.sub.0 (T). The magnetic field intensity herein is acquired as expressed in Equation 1 and 2, as follows:
M(t)=[M.sub.x M.sub.y M.sub.z]TEquation 1
M.sub.0={square root over (M.sub.x.sup.2+M.sub.y.sup.2+M.sub.z.sup.2)}Equation 2
[0064] M(t) denotes a magnetic field intensity at a specific time, t. M.sub.x, M.sub.y, M.sub.z herein refer to an output value of measured magnetic field intensity measured by the magnetic sensor in terms of x-axis, y-axis, and z-axis components, respectively. Here, a T is a micro Tesla, used as a magnetic field intensity unit. The micro-tesla (T) is a unit of measurement of the strength of the magnetic field, where the Tesla or T is the SI unit used to measure a magnetic field's strength.
[0065] Next, in step S20, the method measures acceleration vector information n.sub.g. For this measurement, the acceleration sensor or accelerometer is used. For example, the acceleration sensor unit or acceleration sensor 20 of
[0066] Generally, a gravitational direction does not change and always is directed to the center of the Earth. Hence, the gravitational acceleration is an element of the acceleration that can be detected when the accelerometer is stationary, in other words when there is no additional linear acceleration.
[0067] The output of an accelerometer as presented herein is a gravitational acceleration 9.8 m/s.sup.2 that is able to be expressed in a vector form. In general, when the sensor coordination system is level 100, and when there is not acceleration, the acceleration, Acc(t) is acquired as expressed in Equation 3 as follows:
Acc(t)=a.sub.g*[0 0 1] m/sec.sup.2Equation 3
[0068] Here, a.sub.g denotes a gravitational acceleration, which generally has a value of 9.8 m/s.sup.2. The acceleration, Acc(t) denotes a sum of linear acceleration and gravitational acceleration a.sub.g. However, when the sensor coordination system is not level 100, the acceleration can be acquired as expressed in Equation 4, as follows:
Acc(t)=[A.sub.x A.sub.y A.sub.z] m/sec.sup.2Equation 4
[0069] In Equation 4, A.sub.x, A.sub.y, A.sub.z refer to accelerations with respect to x-axis, y-axis, and z-axis components respectively.
[0070] In step S30, the method calculates an inclination angle of magnetic field using the magnetic field vector information n.sub.m and acceleration vector information n.sub.g that are measured through the step S10 and the step S20.
[0071] Ideally, if the sensor coordination system according to the present disclosure is level and there is no linear acceleration applied to the sensor coordination system, only an element of z-axis is left in the acceleration vector, as shown in Equation 4. Further, if a Y-axis of the magnetic sensor is oriented to correspond to magnetic north, the inclination angle of the magnetic field is able to be acquired as expressed in Equation 5, without magnetic field vector information n.sub.m and acceleration vector information n.sub.g. The way in which inclination angle is able to be acquired as expressed in Equation 6 as follows:
[0072] Herein, M.sub.x, M.sub.y, and M.sub.z refers to the magnetic field intensity of x, y, and z respectively.
[0073] However, in an actual environment, the sensor coordination system is not always level 100 and if a disturbance occurs as shown in
[0074] Accordingly, if a disturbance occurs, it is required that the inclination angle is calculated using the magnetic field vector information n.sub.m and acceleration vector information n.sub.g. Hereinafter, such a method for calculating the inclination angle is illustrated.
[0075] First, the acceleration vector information n.sub.g and magnetic field vector information n.sub.m are each acquired as expressed in Equations 7 and 8, respectively as follows:
n.sub.g=(A.sub.xi+A.sub.yj+A.sub.zk)/A.sub.xi+A.sub.yj+A.sub.zkEquation 7
n.sub.m=(M.sub.xi+M.sub.yj+M.sub.zk)/M.sub.xi+M.sub.yj+M.sub.zkEquation 8
[0076] Herein, i, j, and k each refer to a unit vector for axes x, y and z, respectively. Also, it is assumed that the two sensor coordinates coincide.
[0077] Herein, a cross product of n.sub.g and n.sub.m is acquired as expressed in Equation 9 and Equation 10 as follows:
[0078] In Equation 9, A.sub.x, A.sub.y, and A.sub.z refer to the magnitude of an acceleration and they include both the linear acceleration portion and gravitational acceleration 9.8 m/sec.sup.2.
[0079] The cross product thereof is illustrated in
[0080] As illustrated in the example of
[0081] Accordingly, the present embodiments presume that the acceleration vector information n.sub.g coincides with the gravitational direction. The acceleration vector information n.sub.g is thus used as a reference value to calculate the inclination angle of the magnetic vector information n.sub.m accordingly.
[0082] Thus, according to an embodiment, the inclination angle of the magnetic field is calculated based on a cross product between the magnetic field vector information n.sub.m and the acceleration vector information n.sub.g in the step S30. The particular inclination angle is thus acquired as expressed in Equation 11 and Equation 12 as follows:
=/2sin.sup.1(|n.sub.gn.sub.m|)Equation 11
[0083] Here, denotes an inclination angle of a magnetic field.
[0084] In particular, it is understood that there is a vector a and a vector b. An angle between the vectors a and b refers to .sub.a Here, the magnitude of a cross product between vector a and vector b is |a|*|b|*sin .sub.a. The angle between the vectors a and b is extracted using the above Equation 12. Hereinafter, as shown in
[0085] According to another embodiment, in step S30, an inclination angle of a magnetic field is calculated through an inner product between the magnetic field vector information n.sub.m and acceleration vector information n.sub.g. For example, a particular horizontal inclination angle is acquired as expressed in Equation 13 and 14 as follows:
=/2cos.sup.1(n.sub.g.Math.n.sub.m)Equation 13
[0086] Here, refers to the inclination angle of the magnetic field.
[0087] In particular, there is vector a and vector b. The angle between the vectors a and b refers to .sub.b. Herein, the magnitude of the inner product between vector and b is |a|*|b|*sin .sub.b. The angle between the vector a and vector b is extracted by using Equation 14. Hereinafter, as shown in
[0088] However, a physical value that is actually measured through the accelerometer sensor, not only measures the value of gravitational acceleration but also the linear acceleration. The linear acceleration plays a role of noise adding difficulty to deriving the inclination angle. In other words, when a sensor apparatus moves with a certain linear acceleration, an inclination angle is not able to be extracted accurately easily because the accelerometer generates a linear acceleration in addition to gravitational acceleration.
[0089] Accordingly, an embodiment provides a method for calculating a more accurate inclination angle by limiting calculations in the derivation of an inclination angle, according to a sensor value that is measured through the accelerometer sensor. Hereinafter, such a method is illustrated with reference to
[0090]
[0091] As illustrated in
[0092] In other words, when determined to be a moving state through the performance of step S25, the prior horizontal inclination value is used without calculating a new horizontal inclination value.
[0093] A method for determining a moving state of the S25 is applied with various method steps as follows.
[0094] First, determining a moving state considers comparison of magnitude of the measured acceleration vector.
[0095] According to an embodiment, in step S25, when the difference between the magnitude of an acceleration vector Acc and a gravitational acceleration value a.sub.g that are measured in step S20 when measuring an acceleration vector information n.sub.g, is less than a threshold value Ts.sub.value, it is determined to be a stationary state. This information is acquired as expressed in Equation 15 and 16, as follows:
Acc.sub.i={square root over (A.sub.x.sub.
[0096] In Equation 15, Acc.sub.i refers to a i.sup.th acceleration.
|Acca.sub.g|Ts.sub.valueEquation 16
[0097] In Equation 16, Acc refers to an acceleration, and a.sub.g refers to a gravitational acceleration.
[0098] In other words, when a value of difference between the acceleration Acc and gravitational acceleration a.sub.g is in a critical range as defined by Equation 16, it is determined that the sensors are stationary or in a state of having a constant velocity. By contrast, when a value of the difference between the acceleration Acc and the gravitational acceleration a.sub.g is outside the critical range of Equation 16, it is determined that the sensors are in a moving state. According to an embodiment, a magnitude of the threshold value Ts.sub.value is chosen to fall in the range of approximately 0.1 to 0.7 m/s.sup.2.
[0099] The threshold value and the difference between the Acc value and gravitational acceleration 9.8 m/sec2 are compared as a reference value to determine whether the magnitude of the acceleration component is over the predetermined value. For example, assuming that the threshold value is 0.3 m/s.sup.2, when the magnitude of the acceleration component is less than 0.3 m/s.sup.2, the sensors are determined to be in a stationary state. If the magnitude of the acceleration component is greater than 0.3 m/s.sup.2, the magnitude of acceleration component is more than 0.3 m/s.sup.2, and is therefore determined to be in a moving state.
[0100] When the difference between the Acc value and a gravitational acceleration of 9.8 m/sec2 is within a predetermined range, the inclination angle is acquired as expressed in the aforementioned Equation 12 and Equation 14. However, if the acceleration is outside of the predetermined range, the sensors are determined to be in a moving state. In other words, in such a moving state, the sensors experience a state of acceleration and deceleration.
[0101] However, the aforementioned values, such as a specific threshold candidate, are merely examples used to predetermine a threshold value in an embodiment, and thus other values are applicable in other embodiments. However, if the threshold value is set to have too low a value, operation requires renewal of the inclination angle frequently as a result, causing instability in the system. If the threshold value is set to have too large a value, the calculation time for the inclination angle is possibly delayed, interfering with successful operation. In addition, when a value that is too larger is applied, an inclination angle with a low accuracy is calculated due to the effects of linear acceleration.
[0102] Accordingly, a fixed value or a variance mean value with respect to a calculated average value of the measured acceleration vector is possibly applied as the threshold value. Such an example is illustrated further according to the following discussion of an embodiment.
[0103] Second, determining a moving state considers a comparison of moving average value of the measured acceleration in an embodiment.
[0104] According to an embodiment, in step S25, when the difference between a moving average value of a number N of acceleration vectors that are measured for a sufficient period of time and a gravitational acceleration value is under a threshold value Tsvalue, it is determined that the sensors are in a stationary state. Herein, the moving average value of the number N of acceleration vectors is acquired as expressed in Equation 17, as follows:
[0105] In Equation 17, Acc.sub.mean refers to a moving average value, and each Acc.sub.i refers to an i.sup.th acceleration vector, given by
Acc.sub.i={square root over (A.sub.x.sub.
[0106] The Acc.sub.mean value is possibly used instead of the original Acc that is used in Equation 16. In other words, according to an embodiment, Acc.sub.mean refers to a moving average value of a number N of acceleration vectors that is calculated as expressed in the Equation 17, and is able to be used as a replacement for the Acc value in Equation 16, such that the new criterion for whether a moving state is occurring is found based on the comparison (|Acc.sub.meana.sub.g|)Ts.sub.value.
[0107] Accordingly, the sensor coordination system or magnetic sensor 10 is determined as being in a stationary state when Ts.sub.value is within the predetermined threshold value. The sensor coordination system is determined as being in a moving state when Ts.sub.value is outside the predetermined threshold range according to the modified Equation 16.
[0108] Third, determining a moving state includes comparison of a moving average value of the measured acceleration vector in an embodiment.
[0109] According to an embodiment, in S25, the threshold value Ts.sub.value is applied using a variance value of the most recently measured number N of acceleration vectors, as an alternative to other embodiments. In particular, in an embodiment, the variance value is acquired as expressed in Equation 18 as follows.
[0110] In Equation 18, .sub.Acc value refers to a variance value of acceleration vector, Acc.sub.i refers to an i.sup.th acceleration vector and Acc.sub.mean refers to a moving average value of a number N of acceleration vectors.
[0111] The ACC.sub.mean is able to be acquired as expressed in Equation 17. A method for calculating an inclination angle of a magnetic field according to the embodiments calculates horizontal inclination information regarding the measured magnetic field using an accelerometer and a measured result of a magnetometer.
[0112]
[0113] Referring to
[0114] Subsequently, an apparatus for calculating the inclination angle of the magnetic field using the method for calculating the inclination angle of the magnetic field is discussed further.
[0115]
[0116] As illustrated in the embodiment of
[0117] Preferably, the apparatus for calculating the inclination angle of the magnetic line of force 1 also includes a moving state determining unit or moving state determiner 25 using the measured acceleration vector information through the acceleration sensor 20, and the apparatus for calculating the inclination angle of the magnetic line of force 1 accordingly operates the inclination angle calculation of the inclination angle calculator 30 only when determined to be in a stationary state through use of the moving state determiner 25.
[0118] Herein, the magnetic sensor 10 performs step S10 of
[0119] Respective modules of the apparatus for calculating the inclination angle of the magnetic line of force 1 according to
[0120] The apparatuses, units, modules, devices, and other components illustrated in
[0121] The methods illustrated in
[0122] Instructions or software to control a processor or computer to implement the hardware components and perform the methods as described above are written as computer programs, code segments, instructions or any combination thereof, for individually or collectively instructing or configuring the processor or computer to operate as a machine or special-purpose computer to perform the operations performed by the hardware components and the methods as described above. In one example, the instructions or software include machine code that is directly executed by the processor or computer, such as machine code produced by a compiler. In another example, the instructions or software include higher-level code that is executed by the processor or computer using an interpreter. Programmers of ordinary skill in the art can readily write the instructions or software based on the block diagrams and the flow charts illustrated in the drawings and the corresponding descriptions in the specification, which disclose algorithms for performing the operations performed by the hardware components and the methods as described above.
[0123] The instructions or software to control a processor or computer to implement the hardware components and perform the methods as described above, and any associated data, data files, and data structures, are recorded, stored, or fixed in or on one or more non-transitory computer-readable storage media. Examples of a non-transitory computer-readable storage medium include read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD+Rs, CD-RWs, CD+RWs, DVD-ROMs, DVD-Rs, DVD+Rs, DVD-RWs, DVD+RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, magnetic tapes, floppy disks, magneto-optical data storage devices, optical data storage devices, hard disks, solid-state disks, and any device known to one of ordinary skill in the art that is capable of storing the instructions or software and any associated data, data files, and data structures in a non-transitory manner and providing the instructions or software and any associated data, data files, and data structures to a processor or computer so that the processor or computer can execute the instructions. In one example, the instructions or software and any associated data, data files, and data structures are distributed over network-coupled computer systems so that the instructions and software and any associated data, data files, and data structures are stored, accessed, and executed in a distributed fashion by the processor or computer.
[0124] While this disclosure includes specific examples, it will be apparent to one of ordinary skill in the art that various changes in form and details may be made in these examples without departing from the spirit and scope of the claims and their equivalents. The examples described herein are to be considered in a descriptive sense only, and not for purposes of limitation. Descriptions of features or aspects in each example are to be considered as being applicable to similar features or aspects in other examples. Suitable results may be achieved if the described techniques are performed in a different order, and/or if components in a described system, architecture, device, or circuit are combined in a different manner, and/or replaced or supplemented by other components or their equivalents. Therefore, the scope of the disclosure is defined not by the detailed description, but by the claims and their equivalents, and all variations within the scope of the claims and their equivalents are to be construed as being included in the disclosure.