BIAS AND MISALIGNMENT COMPENSATION FOR 6-DOF IMU USING GNSS/INS DATA

20170234988 · 2017-08-17

    Inventors

    Cpc classification

    International classification

    Abstract

    A system and method for correcting bias and angle misalignment errors in the angle rate and acceleration outputs from a 6-DOF IMU mounted to a vehicle. The method includes providing velocity and estimation attitude data in an inertial frame from, for example, a GNSS/INS, and determining an ideal acceleration estimation and an ideal rate estimation in a vehicle frame using the velocity and attitude data. The method then determines the IMU bias error and misalignment error using the ideal acceleration and rate estimations and the angle rate and acceleration outputs in an IMU body frame from the IMU.

    Claims

    1. A method for correcting bias and angle misalignment errors in angle rate and acceleration outputs from a six-degree of freedom (DOF) inertial measurement unit (IMU), said IMU being mounted on a platform, said method comprising: obtaining velocity and estimation attitude data in an inertial frame; determining an acceleration estimation and a rate estimation in a platform frame using the velocity and attitude data; and determining an IMU bias error and a misalignment error using the acceleration and rate estimations and the angle rate and acceleration outputs from the IMU.

    2. The method according to claim 1 wherein obtaining velocity and attitude data includes obtaining velocity and attitude data from a global navigation satellite system (GNSS) and/or an inertial navigation system (INS).

    3. The method according to claim 1 wherein determining an acceleration estimation and a rate estimation includes transforming velocity, roll angle, pitch angle and yaw angle of the platform in the inertial frame to the platform frame.

    4. The method according to claim 3 wherein transforming velocity and roll, pitch and yaw includes using the equations:
    {dot over (V)}.sup.v=−Ω.sup.vV.sup.v+R.sub.n.sup.vg.sup.n+f.sup.v
    {dot over (R)}.sub.n.sup.v=−Ω.sup.vR.sub.n.sup.v where {dot over (V)}.sup.v is a time derivate of the velocity in the platform frame, g.sup.n=[0,0,−9.80665].sup.t is a vector of gravitation acceleration in the inertial frame, f.sup.v is an acceleration vector in the platform frame, and R.sub.n.sup.v is a transformation matrix from the inertial frame to the platform frame corresponding to angle rotations of roll φ, pitch θ and yaw ψ where: R n v = [ cos .Math. .Math. θcosψ cos .Math. .Math. θsinψ - sin .Math. .Math. θ cos .Math. .Math. ψsinφsin .Math. .Math. θ - cos .Math. .Math. φsin .Math. .Math. ψ sin .Math. .Math. φsin .Math. .Math. θsin .Math. .Math. ψ + cos .Math. .Math. φ .Math. .Math. cos .Math. .Math. ψ cos .Math. .Math. θsinφ cos .Math. .Math. ψcosφcosθ + sin .Math. .Math. φsinψ cos .Math. .Math. φsin .Math. .Math. θsinψ - sin .Math. .Math. φcos .Math. .Math. ψ cos .Math. .Math. θcos .Math. .Math. φ ] and where Ω.sup.v=[ω.sup.vx] is a skew-symmetric matrix of the IMU angular rate outputs as: Ω v = [ 0 - ω ψ ω θ ω ψ 0 - ω φ - ω θ ω φ 0 ] Ω v = R . n v ( R n v ) T f v = V . v + Ω v .Math. V v - R n v .Math. g n where ω is the angular rate, {dot over (V)}.sup.v is obtained using numerical derivatives of the velocity data, and {dot over (R)}.sub.n.sup.v is obtained as: R . n v = R n v φ .Math. φ . + R n v θ .Math. θ . + R n v ψ .Math. ψ . where {dot over (φ)}, {dot over (θ)} and {dot over (ψ)} are calculated numerically.

    5. The method according to claim 1 wherein determining an IMU bias error and a misalignment error includes comparing the acceleration estimation and the rate estimation to the angle rate and acceleration outputs from the IMU.

    6. The method according to claim 5 wherein comparing the acceleration estimation and the rate estimation includes transforming the acceleration and angular rate estimations from the platform frame to an IMU body frame.

    7. The method according to claim 6 wherein determining the IMU bias error and misalignment error includes identifying three misalignment angles using the acceleration estimations at two different sample time.

    8. The method according to claim 7 wherein determining the misalignment angles includes varying a longitudinal acceleration of the platform with a constant lateral and vertical acceleration.

    9. The method according to claim 7 wherein determining the misalignment angles includes varying the longitudinal and vertical accelerations of the platform with a constant lateral acceleration.

    10. The method according to claim 7 wherein determining the IMU bias error and misalignment error includes using equations:
    f.sub.bias=f.sup.b−R.sub.v.sup.bf.sup.v,
    ω.sub.bias=ω.sup.b−R.sub.v.sup.bω.sup.v.

    11. The method according to claim 1 further comprising using the IMU bias error and misalignment error to determine platform velocity in the event that providing velocity and estimation attitude data is unavailable.

    12. The method according to claim 1 wherein the platform is a vehicle and the IMU is mounted to a vehicle structure.

    13. A method for correcting bias and angle misalignment errors in angle rate and acceleration outputs from a six-degree of freedom (DOF) inertial measurement unit (IMU) mounted on a vehicle, said method comprising: providing velocity and estimation attitude data in an inertial frame from a global navigation satellite system (GNSS) and/or an inertial navigation system (INS); determining an acceleration estimation and a rate estimation in a vehicle frame using the velocity and attitude data that includes transforming velocity, roll angle, pitch angle and yaw angle of the vehicle in the inertial frame to the vehicle frame; and determining an IMU bias error and a misalignment error using the acceleration and rate estimations and the angle rate and acceleration outputs from the IMU that includes comparing the acceleration estimation and the rate estimation to the angle rate and acceleration outputs from the IMU and transforming the acceleration and angular rate estimations from the vehicle frame to an IMU body frame.

    14. The method according to claim 13 wherein determining the IMU bias error and misalignment error includes identifying three misalignment angles using the acceleration estimations at two different sample time.

    15. The method according to claim 14 wherein determining the misalignment angles includes varying a longitudinal acceleration of the vehicle with a constant lateral and vertical acceleration.

    16. The method according to claim 14 wherein determining the misalignment angles includes varying the longitudinal and vertical accelerations of the vehicle with a constant lateral acceleration.

    17. The method according to claim 14 wherein determining the IMU bias error and misalignment error includes using equations:
    f.sub.bias=f.sup.b−R.sub.v.sup.bf.sup.v,
    ω.sub.bias=ω.sup.b−R.sub.v.sup.bω.sup.v, where f.sub.bias is the misalignment error, f.sup.b is acceleration in the body frame, f.sup.v is acceleration in the vehicle frame, ω.sub.bias is the bias error, ω.sup.b is angular rate in the body frame, ω.sup.v is angular rate in the vehicle frame, and R.sub.v.sup.b is a transformational matrix between the vehicle frame and the body frame.

    18. The method according to claim 13 further comprising using the IMU bias error and misalignment error to determine vehicle velocity in the event that providing velocity and estimation attitude data is unavailable.

    19. A system for correcting bias and angle misalignment errors in angle rate and acceleration outputs from a six-degree of freedom (DOF) inertial measurement unit (IMU), said IMU being mounted on a platform, said system comprising: means for providing velocity and estimation attitude data in an inertial frame; means for determining an acceleration estimation and a rate estimation in a platform frame using the velocity and attitude data; and means for determining an IMU bias error and a misalignment error using the acceleration and rate estimations and the angle rate and acceleration outputs from the IMU.

    20. The system according to claim 19 wherein the means for providing velocity and attitude data provides the velocity and attitude data from a global navigation satellite system (GNSS) and/or an inertial navigation system (INS).

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0012] FIG. 1 is an isometric illustration of a vehicle showing a vehicle reference frame and an IMU body frame;

    [0013] FIG. 2 is a block diagram of an IMU error estimation system; and

    [0014] FIG. 3 is a flow diagram showing a process for providing IMU error estimations.

    DETAILED DESCRIPTION OF THE EMBODIMENTS

    [0015] The following discussion of the embodiments of the invention directed to a system and method for identifying IMU bias and misalignment errors in a 6-DOF IMU on a vehicle is merely exemplary in nature, and is in no way intended to limit the invention or its applications or uses. For example, the system and method has particular application for secondary vehicle speed estimation. However, as will be appreciated by those skilled in the art, the system and method may have other applications and for other mobile platforms, such as on trains, machines, tractors, boats, recreation vehicles, etc.

    [0016] FIG. 1 is an isometric view of a vehicle 10 including a GNSS/INS unit 12 that provides accurate vehicle velocity and attitude data including roll, yaw and pitch angles in a known manner. Further, the vehicle 10 includes sensors 14 intended to represent one or more of wheel speed sensors, steering wheel angle sensors, yaw rate sensors, longitudinal and lateral acceleration sensors, etc. as required by the discussion herein. The vehicle 10 also includes a 6-DOF IMU 16 that provides the acceleration and angular rate measurements as also discussed herein. As mentioned, the IMU 16 is a known device that includes three accelerometers and three gyros. When the vehicle speed measurement data is unavailable, the measurements from the IMU 16 can be employed to provide vehicle speed estimations as discussed, for example, in the '894 application.

    [0017] The discussion herein will refer to three coordinate frames including an inertial frame (N-frame), which is a fixed reference frame on the ground with the X-axis directed to the east, the Y-axis directed to the north and the Z-axis directed upward. A vehicle frame 20 (V-frame) is a body-fixed frame located at the center of gravity of the vehicle 10 with the X-axis directed forward, the Y-axis directed to the left and the Z-axis directed upward, as shown in FIG. 1. A body frame 22 (b-frame) is a body-fixed frame located at the center of the IMU 16, where the X-Y-Z axes are aligned with the X-Y-Z axes of the accelerometers and gyros in the IMU 16. The IMU errors include the six components of bias for each accelerometer and gyro along the X-Y-Z axes of the body frame 22 and three misalignment angles corresponding to the rotation angles between the body frame 22 and the vehicle frame 20. For each axis of the body frame 22, there are two bias terms, specifically, one for the acceleration and one for the angular rate.

    [0018] FIG. 2 is a block diagram of a system 30 that employs an IMU error estimation model to correct for the bias and misalignment errors referred to above. The system 30 includes an IMU error estimation module 32 that estimates the IMU bias and misalignment errors and a state estimation module 34 that corrects the raw measurements from the IMU 16 and utilizes them in the velocity and attitude estimation models. In the error estimation module 32, the accurate vehicle velocity and attitude are provided at box 36 using, for example, the GNSS/INS data. Using the vehicle velocity and attitude data from the box 36, the module 32 determines an ideal acceleration and angular rate in the vehicle frame 20 at box 38.

    [0019] The discussion below details how the ideal acceleration and angular rate are determined. The following equations define the velocities and angle rates in the vehicle frame 20.


    {dot over (V)}.sup.v=−Ω.sup.vV.sup.v+R.sub.n.sup.vg.sup.n+f.sup.v,  (1)


    {dot over (R)}.sub.n.sup.v=−Ω.sup.vR.sub.n.sup.v,  (2)

    where {dot over (V)}.sup.v is the time derivate of the vehicle velocity in the vehicle frame 20, g.sup.n=[0,0,−9.80665].sup.t is the vector of gravitation acceleration in the inertial frame, f.sup.v is the acceleration vector in the vehicle frame 20, and R.sub.n.sup.v is a transformation matrix from the inertial frame to the vehicle frame 20 corresponding to the Euler angle rotations of roll φ, pitch θ and yaw ψ, where:

    [00001] R n v = [ cos .Math. .Math. θcosψ cos .Math. .Math. θsinψ - sin .Math. .Math. θ cos .Math. .Math. ψsinφsin .Math. .Math. θ - cos .Math. .Math. φsin .Math. .Math. ψ sin .Math. .Math. φsin .Math. .Math. θsin .Math. .Math. ψ + cos .Math. .Math. φ .Math. .Math. cos .Math. .Math. ψ cos .Math. .Math. θsinφ cos .Math. .Math. ψcosφcosθ + sin .Math. .Math. φsinψ cos .Math. .Math. φsin .Math. .Math. θsinψ - sin .Math. .Math. φcos .Math. .Math. ψ cos .Math. .Math. θcos .Math. .Math. φ ] , ( 3 )

    and where Ω.sup.v=[(ω.sup.vx] is the skew-symmetric matrix of the IMU's vehicle angular rates ω.sup.v as:

    [00002] Ω v = [ 0 - ω ψ ω θ ω ψ 0 - ω φ - ω θ ω φ 0 ] . ( 4 )

    [0020] Assuming that the vehicle velocity V.sup.v and the roll angle φ, pitch angle θ and yaw angle ψ are known from the GNSS/INS data, by using equation (1) the ideal IMU acceleration vector f.sup.v and the angular rate measurements Ω.sup.v in the vehicle frame 20 can be found as:


    Ω.sup.v=−{dot over (R)}.sup.v(R.sub.n.sup.v).sup.T,  (5)


    f.sup.v={dot over (V)}.sup.v+Ω.sup.vV.sup.v−R.sub.n.sup.vg.sup.n,  (6)

    where {dot over (V)}.sup.v is obtained using the numerical derivatives of the velocity data and {dot over (R)}.sub.n.sup.v is obtained using equation (3) as:

    [00003] R . n v = R n v φ .Math. φ . + R n v θ .Math. θ . + R n v ψ .Math. ψ . , ( 7 )

    where {dot over (φ)}, {dot over (θ)} and {dot over (ψ)} are calculated numerically.

    [0021] The ideal IMU acceleration vector f.sup.v and the ideal angular rate ω.sup.v from the box 38 are sent to an IMU bias and misalignment estimation box 40 that compares the ideal acceleration vector r and the ideal angular rate Ω.sup.v estimation values to the angle rates cob in the body frame 22 from the gyros in the IMU 16 provided at box 42 and the acceleration values f.sup.b in the body frame 22 from the accelerometers in the IMU 16 provided at box 44 to calculate the bias and misalignment estimation errors. As long as the GNSS/INS date provides accurate information to determine the vehicle velocity and attitude at the box 36, then the bias and misalignment errors for each accelerometer on the X-Y-Z axes of the body frame 22 and the three misalignment angle errors can be accurately obtained at the box 40.

    [0022] In order to calculate the bias and misalignment estimation errors, a relationship between the ideal and the actual measurements is obtained. The IMU measurements in equation (5) are ideal measurements in the sense that they do not include any IMU errors. Considering bias and misalignment as two significant errors, the ideal values and the actual IMU measurements are related as:


    f.sup.b=R.sub.v.sup.bf.sup.v=f.sub.bias,  (8)


    ω.sup.b=R.sub.v.sup.bω.sup.v+ω.sub.bias,  (9)

    where f.sup.b and ω.sup.b are the actual IMU measurements in the body frame 22, f.sub.bias and ω.sub.bias are the bias vectors of the accelerometers and gyros, respectively, and R.sub.v.sup.b is the transformation matrix from the vehicle frame 20 to the body frame 22 corresponding to the IMU misalignment angles as:

    [00004] R v b = [ cos .Math. .Math. βcos .Math. .Math. γ cos .Math. .Math. βsin .Math. .Math. γ - sin .Math. .Math. β cos .Math. .Math. γsinαsinβ - cos .Math. .Math. αsinγ sin .Math. .Math. γsin .Math. .Math. αsinβ + cos .Math. .Math. αcos .Math. .Math. γ cos .Math. .Math. βsinα cos .Math. .Math. γcosαsinβ + sin .Math. .Math. αsinγ sin .Math. .Math. γcos .Math. .Math. αsin .Math. .Math. β - sin .Math. .Math. αcos .Math. .Math. γ cos .Math. .Math. βcos .Math. .Math. α ] , ( 10 )

    where α, β and γ are the misalignment Euler angles about the X, Y and Z axes, respectively.

    [0023] Equations (8) and (9) include six equations with nine unknowns to be found. To find a unique solution to the equations, three equations related to the acceleration measurements from a different time instant are necessary.

    [0024] In the box 40, the three misalignment angles α, β and γ are first found using the ideal acceleration measurements at two different time instants in the following two cases. The first case varies the longitudinal acceleration with constant lateral and vertical accelerations. In this case, the following conditions hold for the ideal acceleration measurements of the IMU 16 at times t.sub.1 and t.sub.2 as:


    f.sub.c.sup.v(t.sub.1)≠f.sub.x.sup.v(t.sub.2),  (11)


    f.sub.y.sup.v(t.sub.1)=f.sub.y.sup.v(t.sub.2),  (12)


    f.sub.z.sup.v(t.sub.1)=f.sub.z.sup.v(t.sub.2).  (13)

    [0025] Assuming that the bias terms remain constant at times t.sub.1 and t.sub.2 and using equations (8)-(13), the difference between the actual IMU measurements at times t.sub.1 and t.sub.2 is found as:

    [00005] { Δ .Math. .Math. f x b = cos .Math. .Math. βcos .Math. .Math. Δ .Math. .Math. f x v Δ .Math. .Math. f b y = ( cos .Math. .Math. γsinαsinβ - cos .Math. .Math. αsin .Math. .Math. γ ) .Math. Δ .Math. .Math. f x v Δ .Math. .Math. f z b = ( cos .Math. .Math. γcos .Math. .Math. αsin .Math. .Math. β + sin .Math. .Math. αsin .Math. .Math. γ ) .Math. Δ .Math. .Math. f x v , ( 14 )

    where Δf=f(t.sub.2)−f(t.sub.1), and where the constant lateral and vertical acceleration terms in the vehicle frame 20 as well as the bias terms are canceled out in the subtraction.

    [0026] Linearizing equation (14) in the neighborhood of (α,β,γ)=(0,0,0) yields:

    [00006] { Δ .Math. .Math. f x b = Δ .Math. .Math. f y v Δ .Math. .Math. f y b = - γΔ .Math. .Math. f x v Δ .Math. .Math. f z b = β .Math. .Math. Δ .Math. .Math. f x v , ( 15 )

    which results in:

    [00007] β = Δ .Math. .Math. f z b Δ .Math. .Math. f x v , ( 16 ) γ = - Δ .Math. .Math. f y b Δ .Math. .Math. f x v . ( 17 )

    [0027] If β≠0 or γ≠0, then the misalignment angle α is found by substituting equations (16) and (17) into equation (14) as:

    [00008] α = sin - 1 ( c 1 .Math. Δ .Math. .Math. f y b + c 2 .Math. Δ .Math. .Math. f z b c 1 2 + c 2 2 ) , ( 18 )

    where:


    c.sub.1=sin β cos γΔf.sub.x.sup.v,  (19)


    c.sub.2=sin γf.sub.x.sup.v.  (20)

    [0028] The second case varies the longitudinal and vertical accelerations with a constant lateral acceleration. In this case, the following conditions are provided.


    f.sub.c.sup.v(t.sub.1)≠f.sub.x.sup.v(t.sub.2),  (21)


    f.sub.y.sup.v(t.sub.1)=f.sub.y.sup.v(t.sub.2),  (22)


    f.sub.z.sup.v(t.sub.1)≠f.sub.z.sup.v(t.sub.2).  (23)

    [0029] Assuming that the bias terms remain constant at times t.sub.1 and t.sub.2 and using equations (8), (9), (21), (22) and (23), the difference between the actual IMU measurements at times t.sub.1 and t.sub.2 is found as:

    [00009] { Δ .Math. .Math. f x b = cos .Math. .Math. βcos .Math. .Math. γΔ .Math. .Math. f x v - sin .Math. .Math. β .Math. .Math. f z b Δ .Math. .Math. f y b = ( cos .Math. .Math. γ .Math. .Math. sin .Math. .Math. αsin .Math. .Math. β - cos .Math. .Math. αsin .Math. .Math. γ ) .Math. Δ .Math. .Math. f x v + sin .Math. .Math. αcos .Math. .Math. β .Math. .Math. f z v Δ .Math. .Math. f z b = ( cos .Math. .Math. γcos .Math. .Math. αsinβ + sin .Math. .Math. αsinγ ) .Math. Δ .Math. .Math. f x v + cos .Math. .Math. αcosβΔ .Math. .Math. f z v , ( 24 )

    where the constant lateral acceleration terms and the bias terms in the vehicle frame 20 are cancelled out in the subtraction.

    [0030] Linearizing equation (24) in the neighborhood of (α,β,γ)=(0,0,0) yields:

    [00010] { Δ .Math. .Math. f x b = Δ .Math. .Math. f x v - βΔ .Math. .Math. f z v Δ .Math. .Math. f y b = - γ .Math. .Math. Δ .Math. .Math. f x v + α .Math. .Math. Δ .Math. .Math. f z v Δ .Math. .Math. f z b = β .Math. .Math. Δ .Math. .Math. f x v + Δ .Math. .Math. f z v . ( 25 )

    [0031] The misalignment angle is found from equation (25) as:

    [00011] β = Δ .Math. .Math. f z b - Δ .Math. .Math. f z v Δ .Math. .Math. f x v . ( 26 )

    [0032] If an estimation of the misalignment angle γ is available from previous times, then:

    [00012] α = Δ .Math. .Math. f y b - Δ .Math. .Math. f x v Δ .Math. .Math. f z v . ( 27 )

    [0033] For implementing the misalignment estimation algorithm, the ideal IMU measurements in equations (5) and (6) are buffered in the module 32 for a short period of time (e.g., 1 second). The time t.sub.2 is put equal to the current time, and time t.sub.1 is found by searching the buffered data, which satisfy the conditions in the first case or the second case. Since the misalignment angles are constant, they are updated as the average of the current and previous values at each time instant.

    [0034] Once the misalignment angles α, β and γ are calculated, the bias components for the accelerometers and gyros can be obtained using equations (8), (9) and (10) as:


    f.sub.bias=f.sup.b−R.sub.v.sup.bf.sup.v,  (28)


    ω.sub.bias=ω.sup.b−R.sub.v.sup.bω.sup.v.  (29)

    [0035] FIG. 3 is a flowchart diagram 60 showing a process for providing the IMU error estimation calculations in the boxes 38 and 40 as discussed above. Vehicle attitude measurements of roll φ, pitch θ and yaw ψ are provided at box 62 from the GNSS/INS data to box 64 that transforms the vehicle attitude measurements from the inertial frame to the vehicle frame 20 to obtain the transformation matrixes R.sub.n.sup.v and {dot over (R)}.sub.n.sup.v as provided by equations (2) and (3). The transformation matrixes R.sub.n.sup.v and {dot over (R)}.sub.n.sup.v are then sent to box 66 to provide compensated rates in the vehicle frame 20 including the angular rates ω.sup.v and the skew-symmetric matrix Ω.sup.v provided by equation (5). The vehicle velocity and acceleration values V.sup.v and {dot over (V)}.sup.v from the GNSS/INS data are provided at box 68 and are compensated for acceleration in the vehicle frame 20 at box 70 using the skew-symmetric matrix Ω.sup.v provided by equation (5) from the box 66 to obtain the measured acceleration vector f.sup.v in the vehicle frame 20 provided by equation (6). The algorithm uses the vector f.sup.v from the box 70 and the IMU acceleration measurement values f.sup.b from box 74 to calculate the misalignment angles α, β and γ using either the first case through equations (16), (17) and (18) or the second case through equations (26) and (27). The algorithm generates the transformation matrix R.sub.v.sup.b for transformation from the vehicle frame 20 to the body frame 22 using equation (10) at box 76. The transformation matrix R.sub.v.sup.b is then provided to box 78 along with the angle rates ω.sup.b in the body frame 22 from the IMU 16 at box 80 and the acceleration rates in the body frame 22 f.sup.b from the box 74 to generate the bias components f.sub.bias and ω.sub.bias using equations (28) and (29), where the results obtained from equations (16), (17) and (18) or equations (26) and (27), and equations (28) and (29) give the nine values.

    [0036] The nine values identifying the bias and misalignment errors from the box 40 are provided to the module 34 so that if the GNSS/INS data is not available at any particular point in time, then the previous calculated errors can be used to identify the vehicle velocity and attitude in case those values are needed if the vehicle velocity sensors fail. Therefore, if the IMU data is needed to estimate the vehicle velocity as in the '894 application, those values are adjusted for the errors prior to being used for those calculations. The errors from the box 40 are applied to an IMU bias and misalignment compensation box 46 in the module 34 along with IMU angle rates ω.sup.b at box 48 and the IMU acceleration values f.sup.b at box 50 to be corrected as follows.


    f.sup.v=(R.sub.v.sup.b).sup.T(f.sup.b−f.sub.bias),  (30)


    ω.sup.v=(R.sub.v.sup.b).sup.T(ω.sup.b−ω.sub.bias).  (31)

    [0037] Once the IMU angle rates and acceleration values are corrected at the box 46, those corrected values can be used to determine the vehicle velocity and attitude at box 52 as described, for example, in the '894 application.

    [0038] As will be well understood by those skilled in the art, the several and various steps and processes discussed herein to describe the invention may be referring to operations performed by a computer, a processor or other electronic calculating device that manipulate and/or transform data using electrical phenomenon. Those computers and electronic devices may employ various volatile and/or non-volatile memories including non-transitory computer-readable medium with an executable program stored thereon including various code or executable instructions able to be performed by the computer or processor, where the memory and/or computer-readable medium may include all forms and types of memory and other computer-readable media.

    [0039] The foregoing discussion discloses and describes merely exemplary embodiments of the present invention. One skilled in the art will readily recognize from such discussion and from the accompanying drawings and claims that various changes, modifications and variations can be made therein without departing from the spirit and scope of the invention as defined in the following claims.