At least some embodiments disclosed herein relate generally to gyroscope and more specifically, but not limited to, calibration of gyroscope sensors.
Gyroscope calibration is important to obtain accurate measurements of the orientation of a gyroscope as a function of time. The sensors of a gyroscope measure the angular velocity of a gyro to generate gyroscope signal as a function of time. The orientation of the gyroscope can be obtained by integrating the gyroscope signal throughout time, starting from a time instant when the orientation of the gyroscope is known. If the gyroscope signal, or gyro signal, contains a bias, the error in the computed orientation of the gyroscope caused by the bias accumulates over time through the integration of the gyro signal with respect to time. Thus, calibrating the gyroscope signal from the gyroscope is important for accurate determination of the orientation of the gyroscope.
During a time period in which the gyroscope is stationary and non-rotating, gyroscope bias can be estimated using simple methods such as averaging the gyroscope signal. When the gyroscope is stationary and not rotating, an average of the gyroscope signal over a period of time is expected to be zero. Thus, when the average of the gyroscope signal is not zero, the average is the bias that can be subtracted from the gyroscope signal to generate the calibrated gyroscope signal, such that the average of the calibrated gyroscope signal is zero.
A bias, even once determined, can change in time due to the changes in temperature or other environmental parameters. Thus, it is preferred to perform calibration periodically to remove bias from the gyroscope signal for accurate determination of gyroscope orientation.
In many practical situations, however, such simple methods for estimating gyroscope bias are not appropriate, since stationary data is often not available (e.g. when the gyro is constantly in motion). Additionally, there could be time constraints on estimating (or updating an estimate of) bias that do not allow the use of stationary data. In such situations, a more sophisticated method for estimating gyroscope bias that can be used while device is in motion is needed.
The embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
The following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding. However, in certain instances, well known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure are not necessarily references to the same embodiment; and, such references mean at least one.
At least one embodiment disclosed herein overcomes the limitations of conventional, simple methods of bias calibration for gyroscope and allows gyroscope bias calibration during device motion.
In the system of
In
The computing device further includes a bus (103) that connects the input/output interface (115), at least one microprocessor (101), random access memory (105), read only memory (ROM) (107), a data storage device (109), a display device (111), and an input device (113).
The memory devices (e.g., 105, 107, and 109) store instructions configured to perform various operations disclosed herein to determine the bias in gyro sensors (119) and calibrate the signals of the gyro sensors (119). In one embodiment, after the bias is determined, the A/D converter (117) is instructed to remove the bias from the signals generated by the gyro sensors (119). Alternatively, the bias data is stored in one or more of the memory devices (e.g., 105 or 109); and the microprocessor(s) (101) is configured with the instructions to calibrate the gyro sensors by subtracting the bias from the digital signals received from the A/D converter (117) and/or incorporate the bias in computing the orientation of the gyroscope using the digital signals from the A/D converter (117).
The computing device of one embodiment is configured to store at least a portion of the digital data received from the A/D converter (117), and use the stored portion of the digital data to compute the bias, and apply the bias to the stored digital data to generate orientation data of the gyroscope.
In
In
For example, when the gyroscope having the gyro sensors (119) is in a time period of motion with slow changing trajectory without large rotations and with possible small oscillations, the average of the computed orientation is expected to remain constant. Deviation of such a characteristic of the orientation of the gyroscope from an ideal target of remaining constant during the time period is a result of the bias. The deviation is detected and used to quantify the bias and calibrate the gyro sensors (119). For example, the linear fitted slope of the computed orientation can be identified as the result of a bias in the gyro signal and used for calibration.
For example, in a short period of time (e.g., 1 second), the gyroscope is stationary and/or its orientation is known (e.g., aligned with a known track, a starting position). The time window may be too short to estimate the gyroscope bias directly using a simple average of the gyroscope signal. During the short period of time, an initial orientation of the gyroscope is determined. After the short period of time, the gyroscope may be subjected to a motion having a predetermined pattern that has a relatively slow changing trajectory with small oscillations but no large rotations. Examples of such motions include the motion of the board of a surfer while the surfer is paddling, and the motion of the ski of a skier while the skier is zigzagging and descending a slope. While the gyroscope is experiencing such a motion, the gyro data can be processed to identify the bias in the output of the gyro sensors (119). Through integration of the gyro sensor signals over time from the initial orientation of the gyroscope, the orientation of the gyroscope during the time period of the motion having such a pattern is computed. Each of the orientation angles of the gyroscope can be fitted to a line with respect to time. The slope of the line represents the estimated bias in the output of the gyro sensors (119).
For example, the calibration method can be used to estimate and remove bias in sensor signals from a gyroscope attached to a piece of sports equipment, such as a snowboard or surfboard, as well as to other systems, devices, or objects. To perform the calibration, two time periods are identified. In the first time period, the orientation of the gyroscope is known; and in the second time period, the gyroscope is subjected to a motion having the characteristics of following a slow changing trajectory without large rotations (but may have small oscillations). After the initial orientation of the gyroscope is estimated, the gyroscope signals are integrated from the time of the initial orientation of the gyroscope through the second time period to obtain the orientation of the gyroscope as a function of time in the second time period.
To identify a component of gyroscope bias, the method of one embodiment removes the components of the bias that have been identified thus far from the gyroscope signals in the integration time period starting from the time of the initial orientation through the second time period to obtain a version of the calibrated gyroscope signals. Integration of the calibrated gyroscope signals through the integration time period provides the orientation as a function of time during the second time period, which is typically the ending portion of the integration time period for bias detection. The computed orientation can be expressed in a roll-pitch-yaw angular representation. Optionally, the magnetic angle representing current magnetic declination is computed in a suitable domain (e.g., without wrapping at ±180 degrees, etc.) to replace the yaw data. A linear fit is performed for each of the roll-pitch-yaw angles as a function of time in the second time period. The slopes of the linear fit of roll-pitch-yaw correspond to the component of gyroscope bias. The component of bias is selected to retain, using a fixed ordering, or by choosing the component with smallest least-squared error of linear fit that has not yet been calibrated. The gyroscope signals are further calibrated by removing the newly identified component of bias. The newly identified component of bias is combined with the previously identified component of bias to determine the total bias found. The process of identifying a new component of bias can be repeated for the same integration time period to improve the accuracy of the bias found.
More specifically, orientation can be represented using quaternions L. Each quaternion can be associated with an angle α and unit axis û (rotation by angle α about axis û), where
L(α,û)=cos(½α)+sin(½α)(û1i+û2j+û2k).
The orientation quaternion convention used is such that
g
1(t)=L(t)*{circumflex over (x)}*L(t)−1
g
2(t)=L(t)*ŷ*L(t)−1
g
3(t)=L(t)*{circumflex over (z)}*L(t)−1
where ei are the gyroscope axes, and {circumflex over (z)}, ŷ, {circumflex over (z)} are the global (real-world) coordinate axes East, North, and Up, and * denotes quaternion multiplication.
In practice, candidates of suitable time periods over which to estimate bias can be identified using a variety of methods, e.g., by identifying where a surfer is paddling, or a skier is descending a hill, and then applying additional criteria to find a period of time where motion meets a predetermine characteristic (e.g., being along a relatively slow changing trajectory without large rotations, having an initial orientation that can be determined from a known orientation). The additional criteria for find the period of time can also include linear fitting, examination of magnetic data, and/or thresholds for lack of motion for finding the initial condition.
The initial orientation of the device L0 can be known (e.g., based on the position of the equipment to which the gyroscope is attached), or be estimated in any number of ways. If accelerometer and magnetometer data are available, for example, a tilt-compensated compass method could be used. The results of a tilt-compensated compass can be enhanced using linear acceleration from GPS data, if available.
3-axis gyroscope data ω(t) can be integrated to give quaternions L(t) that represent the device's orientation by solving the differential equation
where denotes quaternion multiplication, subject to the initial condition L(t=0)=L0. It is also possible to solve the following differential equation “backwards in time”:
where τ=tf−t is a time-like variable, if the initial condition L(t=tf)=Lf can be better estimated at the end of the time period.
Once the orientation quaternions L have been found, the orientation is expressed in a Tait-Bryan angular representation of the device's orientation. The representation chosen can be in the form of roll φ, pitch θ, yaw γ, where
L(t)=Lφ(t)*Lθ(t)*Lψ(t)
and
L
ψ
=L(90−ψ,{circumflex over (z)})
L
θ
=L(−θ,Lψ*ŷ*Lψ−1)
L
φ
=L(φ,Lθ*Lψ*{circumflex over (x)}*Lψ−1*Lθ−1))
using the angle and axis to represent each quaternions. In such a representation, yaw ψ is the device's heading (direction of ê1), pitch θ is its angle above horizontal (angle of ê1 above horizontal), and roll φ is its rotation about the direction with the correct heading and angle above horizontal (ê1) where positive is denoted by the right hand (“RH”) rule (with the right hand in a “thumbs up” gesture with the thumb pointing in the direction of the heading at the angle above horizontal, the fingers indicate the positive direction).
For the kind of motion satisfying condition of being along a relatively slow changing trajectory without large rotations and having small oscillations around a common direction, bias is estimated by finding a linear fit to the orientation angles φ, θ, and ψ. This linear fit might only be for some time within the period of integration, e.g. it might start 5 seconds after integration begins to allow for larger motion of the device as it starts moving.
For example,
A linear fit to the orientation angle ψ computed from the sensor data can be performed in a similar way as illustrated in
Then the estimated gyroscope bias is
b=[a
φ
,a
θ
,a
ψ]
where aφ, aθ, and aψ are the slopes from the linear fit to the angles φ, θ, and ψ respectively.
In some embodiments, the bias may be computed one component at a time; after one component of bias is computed, it is subtracted from the gyroscope data and the quaternions and angles are recomputed. The order of estimating bias components can be fixed, or it could be determined by some other method, such as by choosing a component not yet calibrated with best linear fit as determined by least-squared error.
If 3-axis magnetometer data is available, the result can generally be improved by leveraging the magnetic data. In such cases, we may switch θm for ψ, where
and {circumflex over (m)} is the unit magnetic vector obtained from magnetometer data written in global coordinates.
The angle θm may loosely be described as the current magnetic declination. In general, θm gives a better result, as in the absence of large changes in the ambient magnetic field the magnetic declination should be constant, whereas the device heading may not be constant during the period of time chosen, as illustrated in
For example,
After a component of bias is estimated, it is removed from the gyroscope data before the next component is calibrated. This generally improves the quality of calibration.
The total bias is found by adding the individual components of bias together in vector fashion. If operations of computing the orientation from preliminary calibrated/corrected gyro signals and the bias component from the linear fitting of the orientation angles are repeated, the bias components are accumulated over the repetitions.
In
Once the bias has been found, it can be removed from the gyroscope data over all time, or simply during the period of interest.
In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
The present application claims the benefit of the filing date of Prov. Pat. App. Ser. No. 62/112,588, filed Feb. 5, 2015 and entitled “Systems and Methods for In-motion Gyroscope Calibration”, the entire disclosure of which application is hereby incorporated herein by reference. The present application relates to U.S. patent application Ser. No. 13/291,844, filed Nov. 8, 2011, entitled “Device and Method of Gyro Sensor Calibration”, now U.S. Pat. No. 9,146,134, the entire disclosure of which application is hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62112588 | Feb 2015 | US |