Patent Description:
Accelerometers and gyroscopes are widely used for a variety of motion sensing applications ranging from inertial navigation to vibration monitoring. The accelerometers measure changes in acceleration (linear) while gyroscopes provide information about angular motion (rotation). These sensors use the inertial properties of light or matter for their operation and are broadly classified as 'inertial sensors'.

The inertial sensors find wide applications due to the increased capability of electronic devices, new areas of interactive mobile usage, emergence of Head Mounted Display (HMD) and other wearable devices. The inertial sensors are used in 3D gaming platforms and Virtual Reality (VR) applications to track user movements and update the view, game control and scenarios.

The inertial sensors have errors due to mechanical structure (i.e., misalignment errors, orthogonality error in sensor axis, sensitivity error, etc.) and external factors (Temperature, Magnetic field, etc.,) which causes motion sensors to provide erroneous values leading to poor performance in most of the multimedia applications, also resulting in poor user experience. Occurrence of sensor errors varies from device to device, based on offset variations calculated in most sensors.

For example, the accelerometer is affected by misalignment problem, in case of gyroscope the motion artifacts and variations in temperature causes the gyroscope values to drift. All these errors contribute to poor movement tracking resulting in malfunctioning or abnormal behavior in various applications such as for e.g., Gaming applications, a camera application or the like.

Some methods use gyroscope drift compensation complimentary filters in various systems e.g. an inverted pendulum system to remove gyroscope drift using a tilt sensor, which does not take temperature interference into consideration. Further, there are methods employ a complimentary filter with an inclinometer without Kalman filters to reduce complexity and less computation, but they can lag in accuracy for noise in MEMS, as dynamic parameters in MEMS are not covered by complementary filters. Further, some methods include removing gyro drift using time series data modeling, but these methods may require larger converging time.

Providing a mechanism by which automatic adaptive inertial sensor error correction can be made for enhancing user experience in various scenarios remains a source of technical challenges.

<CIT> discloses a vehicular navigational system that compensates for temperature-dependent drift of bias in a vehicle heading sensor associated with a dead reckoning vehicle positioning system. Specifically, a Kalman filter generates a calibration curve for the rate of heading sensor bias drift with temperature change. The Kalman filter calculates coefficients for a model of heading sensor bias drift rate versus temperature at each point where the vehicle is stationary. <CIT> discloses an inertial measurement unit includes a base having a plurality of physically distinct sectors, upon which are positioned thereon three groups of orthogonally oriented angle rate sensors, each group positioned on a different sector of the base.

Certain embodiments according to this disclosure provide a method for compensating gyroscope drift on an electronic device.

Some embodiments according to this disclosure provide a method for compensating the gyroscope drift to enhance user experience in gaming applications, virtual reality (VR) applications and camera applications.

Various embodiments according to this disclosure provide a method for compensating static drift, dynamic drift and temperature drift of the gyroscope.

Certain embodiments according to this disclosure provide a method for compensating the combined drift (i.e., static drift and the dynamic drift) of the gyroscope.

Some embodiments according to this disclosure provide a method to mitigate drifting of values of gyroscope caused by the motion artifacts and variations in temperature, by using temperature variations modeling and static drift filtering of the data.

Various embodiments herein provide a method for compensating gyroscope drift on an electronic device. According to an aspect, there is provided a method according to claim <NUM>. Additional features are set out in claims <NUM> to <NUM>. According to an aspect, there is provided an electronic device according to claim <NUM>. Additional features are set out in claims <NUM> to <NUM>.

Accordingly, certain embodiments according to this disclosure provide an electronic device for compensating gyroscope drift. The electronic device includes a data processing unit configured to receive measurement data from a gyroscope. Further, the data processing unit is configured to compute a compensation parameter by analyzing the measurement data received from the gyroscope with respect to variations in temperature of the gyroscope. Furthermore, the data processing unit is configured to compensate the measurement data by correcting the measurement data with the computed compensation parameter.

Various embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. In the following description, specific details such as detailed configuration and components are merely provided to assist the overall understanding of these embodiments of the present disclosure. In addition, descriptions of well-known functions and constructions are omitted for clarity and conciseness.

Herein, the term "or" as used herein, refers to a non-exclusive or, unless otherwise indicated.

As is traditional in the field, embodiments may be described and illustrated in terms of blocks which carry out a described function or functions. These blocks, which may be referred to herein as managers, units or modules or the like, are physically implemented by analog and/or digital circuits such as logic gates, integrated circuits, microprocessors, microcontrollers, memory circuits, passive electronic components, active electronic components, optical components, hardwired circuits and the like, and may optionally be driven by firmware and software. The circuits may, for example, be embodied in one or more semiconductor chips, or on substrate supports such as printed circuit boards and the like. The circuits constituting a block may be implemented by dedicated hardware, or by a processor (e.g., one or more programmed microprocessors and associated circuitry), or by a combination of dedicated hardware to perform some functions of the block and a processor to perform other functions of the block. Each block of the embodiments may be physically separated into two or more interacting and discrete blocks without departing from the scope of the disclosure. Likewise, the blocks of the embodiments may be physically combined into more complex blocks without departing from the scope of the disclosure.

The embodiments herein provide a method for compensating gyroscope drift on an electronic device. The method includes receiving by a data processing unit measurement data from a gyroscope. The method includes computing by the data processing unit, a compensation parameter by analyzing the measurement data received from the gyroscope with respect to variations in temperature of the gyroscope. The variation in temperature of the gyroscope is received from a temperature sensor in the gyroscope, or from a thermistor or from any other temperature sensor. The method includes compensating by the data processing unit, the measurement data by correcting the measurement data with the computed compensation parameter.

Without compensation, Micro-Electro-Mechanical Systems (MEMS) sensors, such as accelerometer and gyroscope sensors in electronic devices, can provide very low quality measurements. Therefore, for initialization and calibration, external systems such as magnetometer and GPS may be required continuously. Drift characteristics of gyroscopes can be difficult to model, which results in severe degradation of orientation information (roll, pitch and yaw). Further, it should be noted that each sensor has different physical properties and environment requirement for proper functioning. If operating conditions or sensor parameters go beyond the specifications, this can lead to different types of errors in each sensor.

Certain embodiments according to this disclosure provide a method which can be used for compensating the gyroscope on the electronic device. In certain embodiments of this method, static drift, dynamic drift and temperature drift of the gyroscope are computed. Further, the measurement data of the gyroscope is corrected by compensating the measurement data with the static drift, the dynamic drift and the temperature drift.

According to the invention, measurement data from the gyroscope and temperature value of the gyroscope (i.e., gyroscope chip temperature) are obtained from the gyroscope chip (or from system on chip (SOC)) to create, in some embodiments, a regression model for the compensation of drift.

Certain embodiments of a method according to this disclosure can be used to predict a change in the static drift and dynamic drift over temperature changes by considering both the angular velocity and the chip temperature of the gyroscope. The variation in temperature of the gyroscope is received from a temperature sensor in the gyroscope, or from a thermistor or from any other temperature sensor. The static and dynamic drifts are removed using statistical analysis of the measurement data received from the gyroscope. The corrected data or the compensated data is continuously validated over a period of time for improving the compensation. The compensated data is provided to one or more requesting applications which provides a smoother and a better orientation calculation resulting in better user experience.

In various embodiments according to this disclosure, no external systems such as GPS, magnetometer, or the like are required for initialization which decreases the overall system cost. Further, various embodiments according to this disclosure can be used for reducing battery power consumption of the electronic device as no external systems are utilized for calibration of the conventional MEMS sensors.

Further, methods according to certain embodiments of this disclosure can be used in various image/video capturing applications. For example, an image capturing application can create a 3D image of an object by capturing the images in a <NUM> degree fashion and stitching thereon. The stitched images can thus be visualized via changing the orientation of a mobile phone or touch options. Further, the methods according to some embodiments of this disclosure can be utilized for other image capturing applications such as panorama, wide angle selfie or the like.

Methods according some embodiments of this disclosure can be used for sensor fusion applications. Sensor fusion suffers from jittering effect and slow drift because of the drift present in gyroscope sensor. In certain embodiments, the drift can be removed up to <NUM>% resulting in stable and accurate orientation information. The control over the drift results in achieving more accurate fusion.

Various embodiments according to this disclosure provide accurate frame selection for stitching which can enhance the overall experience. The accuracy is improved while picking objects in virtual reality (VR).

Attention is directed to the non-limiting examples provided by drawings and more particularly to <FIG> where similar reference characters denote corresponding features consistently throughout the figures.

The non-limiting example of <FIG> illustrates various hardware elements of an electronic device <NUM> for gyroscope drift compensation, according to various embodiments of the present disclosure. In certain embodiments, the electronic device <NUM> includes a sensor unit <NUM>, a data processing unit <NUM>, a storage unit <NUM> and a display unit <NUM>. For example, the electronic device <NUM> can include a mobile communication device (e.g., smartphone), a computer device, a mobile multimedia device, a mobile medical device, a camera, a wearable device, an HUD, or a household appliance. The electronic devices in embodiments of the present disclosure are not limited to the devices in <FIG>.

In various embodiments, the sensor unit <NUM> includes one or more MEMS (micro electro mechanical systems) sensors. For example, the MEMS sensors include an accelerometer, a gyroscope, or any other inertial sensor. However, the embodiments described herein facilitate the compensation of gyroscope drift. In addition, the electronic device <NUM> may further include various types of sensors, such as a gesture sensor, a pressure sensor, a magnetic sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor. Each sensor of the sensor unit <NUM> can be mounted on a separate chip and a plurality of sensors can be mounted on a single chip.

The data processing unit <NUM> may include one or more processors (for example, an application processor). The data processing unit <NUM> can be configured to receive a measurement data from the sensor unit <NUM>. In certain embodiments, the measurement data include, for e.g., an angular velocity or rotation of the electronic device <NUM> along three axes namely x, y, and z as measured by the gyroscope.

In certain embodiments, the measurement data is received for T seconds, where T seconds is the bias time derived using an Allan variance analysis on the data performed only once for the electronic device <NUM> during boot-up. The measurement data is received when the electronic device <NUM> is static. In order to ensure whether the electronic device <NUM> is static or not, the variance of the vector sum over a period of time is determined. The measurement data is stored (in different batches) with temperature. The variation in temperature of the gyroscope is received from a temperature sensor in the gyroscope, or from a thermistor or from any other temperature sensor. The measurement data may be stored transitory or non-transitory in the storage unit <NUM> or any other memory of the electronic device <NUM>.

According to certain embodiments, data processing unit <NUM> is configured to correct the measurement data received from the gyroscope. The data processing unit <NUM> is configured to compute the compensation parameters such as static drift, dynamic drift, and temperature drift. Further, the data processing unit <NUM> is configured to compensate the measurement data by correcting the measurement data with the computed compensation parameters.

The data processing unit <NUM> can include various self-learning schemes to determine the compensation parameters. Further, various operations performed by the data processing unit <NUM> are described in detail in conjunction with reference to <FIG>.

In the non-limiting example of <FIG>, storage unit <NUM> can be configured to store the measurement data obtained from gyroscope and the computed compensation parameters. The storage unit <NUM> may include one or more computer-readable storage media. The storage unit <NUM> may include non-volatile storage elements. Examples of such non-volatile storage elements may include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. In addition, the storage unit <NUM> may, in some examples, be considered a non-transitory storage medium. The term "non-transitory" may indicate that the storage medium is not embodied in a carrier wave or a propagated signal. However, the term "non-transitory" should not be interpreted that the storage unit <NUM> is non-movable. In some examples, the storage unit <NUM> can be configured to store larger amounts of information than the memory. In certain examples, a non-transitory storage medium may store data that can, over time, change (e.g., in Random Access Memory (RAM) or cache).

The display unit <NUM> can provide information to the outside (e.g., to a user) visually. In certain embodiments, the display unit <NUM> can be configured to display one or more sensor based applications after correcting the measurement data received from the gyroscope. The one or more applications may include image processing applications, navigation applications, motion sensing applications or the like.

<FIG> shows an example of an electronic device <NUM>, according to various embodiments of this disclosure. It is to be understood that other embodiments are not limited thereto. The labels or names of the units are used only for illustrative purpose and does not limit the scope of the disclosure. Further, the electronic device <NUM> can include any number of units or sub-units communicating among each other along with the other components. Likewise, the functionalities of each unit can be combined by a single unit or can be distributed among each other in a manner different than described herein without departing from the scope of the present disclosure.

<FIG> illustrates various hardware elements of the data processing unit <NUM> of the electronic device <NUM>, according to various embodiments as disclosed herein. According to the invention the data processing unit <NUM> includes a state detection unit <NUM>, and in certain embodiments, it further includes a computation unit <NUM> and a correction unit <NUM>. The data processing unit may receive a measurement data from the sensor unit <NUM> (e.g., a gyroscope or other MEMS sensor(s)). In various embodiments, the measurement data may include an angular velocity or rotation of the electronic device <NUM> along three axes, namely x, y, and z, as measured by the sensor unit <NUM>.

According to the invention the state detection unit <NUM> is configured to detect the state of the electronic device <NUM>. The state detection unit <NUM> is configured to detect whether the electronic device <NUM> is static or in motion based on the measurement data.

In various embodiments, the computation unit <NUM> can be configured to compute the compensation parameters. The compensation parameters include, according to the invention, the static drift, dynamic drift and the temperature drift. The three axes gyroscope sensor present in the electronic device <NUM> measures the angular velocity experienced by the electronic device <NUM>. The gyroscope is affected by various drifts or errors due to semi-conductor properties and thermal effect. The computation unit <NUM> can calculate the compensation parameter for the data of each of the three axes (X, Y, Z).

In certain embodiments, the correction unit <NUM> can be configured to correct the measurement data by compensating with the compensation parameters. The correction unit <NUM> can compensate the measurement data by applying the compensation parameter for the measurement data of each of the three axes (X, Y, Z).

The corrected values of gyroscope data sensor are as represented below. <MAT>
where G_real is measurement data (gyro sensor value), s_drift is static drift, t_drift due to temperature drift, M_drift error during motion and ε is white noise.

In the non-limiting example of <FIG>, the corrected data or the compensated data is continuously validated over a period of time for improving the compensation. The compensated data is then provided to requesting application for a smoother and better orientation calculation resulting in better user experience.

<FIG> shows illustrates of the data processing unit <NUM> and, it is to be understood that other embodiments are not limited thereto. The labels or names of the components are used only for illustrative purposes and do not limit the scope of the present disclosure. Further, the data processing unit <NUM> can include any number of units or sub-units communicating among each other along with the other components. Likewise, the functionalities of each unit can be combined by a single unit or can be distributed among each other in a manner different than described herein without departing from the scope of the disclosure.

<FIG> illustrates operations of a method <NUM> for gyroscope drift compensation on the electronic device <NUM>, according to various embodiments as disclosed herein. In certain embodiments, at step <NUM>, the method includes receiving the measurement data from the gyroscope. The method allows the data processing unit <NUM> to receive the measurement data from the gyroscope (or sensor unit <NUM>). The measurement data includes values of the angular velocity of the electronic device <NUM> obtained from the gyroscope. At step <NUM>, the method includes computing the compensation parameters. The method allows the data processing unit <NUM> to compute the compensation parameter. The compensation parameter includes the static drift, the dynamic drift and the temperature drift.

In the non-limiting example of <FIG>, the compensation parameter includes a combination of static drift and the dynamic drift. According to the invention, each compensation parameter is computed independently for correcting the measurement data. The various steps involved in computing each compensation parameter is explained in conjunction with <FIG>.

In certain embodiments, at step <NUM>, the method includes compensating the measurement data by correcting the measurement data with the computed compensation parameters. The method allows the data processing unit <NUM> to compensate the measurement data by correcting the measurement data with the computed compensation parameters. The measurement data is corrected with the computed compensation parameters.

In various embodiments according to this disclosure, the compensated data and temperature value are monitored continuously. A determination is made for identifying new incoming temperature and associated angular velocity, the regression model is updated, enhancing the compensation parameter, thus adaptive learning (On device learning) is performed by the electronic device <NUM>. The drift in the compensated data is calculated and updated to remove the error. The data processing unit <NUM> can determine the compensation parameter by using a statistical model. For example, the data processing unit <NUM> can store the compensation parameter that corresponds to the state (e.g., stopping, angular speed, temperature) of the electronic device <NUM> and can update the stored compensation parameter.

In certain embodiments, the data processing unit <NUM> is configured to validate the compensation parameter continuously to correct the measurement data with the compensation parameter. The compensation parameter is enhanced by validating the compensation parameter continuously. Further, the received measurement data is continuously updated based on the computed compensation parameter, independent of the gyroscope on the electronic device <NUM>. Some embodiments according to this disclosure calculate the drift in the compensated data and update the measurement data to remove error. In some embodiments, the method can be utilized, independent of the gyroscope on the electronic device <NUM>, thus the proposed method is self-adaptive (i.e., On device learning) to correct the gyroscope drift.

<FIG> illustrates operations of a method <NUM> for computing one or more compensation parameters to compensate the gyroscope drift, according to various embodiments of the present disclosure. In certain embodiments, at step <NUM>, the method includes receiving the measurement data from the gyroscope on the electronic device <NUM>. According to certain embodiments, the data processing unit <NUM> receives the measurement data from the gyroscope. The measurement data includes angular motion of the electronic device and temperature value from the gyroscope chip. The measurement data from the gyroscope contains random noise. In order to remove the random noise, at step <NUM>, the method includes applying median filter on the received measurement data. For example, a median filter of window size <NUM> is used to filter the random noise. The filtered data is processed for computing the compensation parameters. The filtered data is captured for T seconds, where T seconds is a drift time derived using the Allan variance analysis on the measurement data performed only once for the electronic device <NUM> during boot. The gyroscope data is captured when the electronic device <NUM> is static. To ensure whether the electronic device <NUM> is static or not, the variance of the vector sum over a period of time is determined.

After receiving the measurement, the measurement data is stored in different batches with temperature. The captured data median is calculated and considered as the combined offsets for temperature and the static drift till the temperature model described below obtains sufficient values.

At step <NUM>, the measurement data received from the gyroscope is analyzed with respect to variations in the temperature. In this non-limiting example, the data processing unit <NUM> analyzes the measurement data received from the gyroscope with respect to variations in the temperature. The gyroscope chips may be equipped with a dedicated temperature sensor for measuring the temperature of the sensor. The working temperature range of the temperature sensor is approximately <NUM> to <NUM> (not limited to). The data processing unit <NUM> is configured to analyze the measurement data variation with the temperature for each axis (X, Y, and Z). As the variation of temperature and the static drift is not very sudden and, the data processing unit <NUM> utilizes a linear regression model on the measurement data received for various range of temperatures. Although a linear regression model is utilized here, it should be noted that any higher order regression model may be used. In order create accurate model for the temperature variation, the measurement data from the gyroscope is obtained for at least five different temperature values. The model is updated once sufficient value for the new temperature is added which further enhances the accuracy.

In some embodiments, at step <NUM>, the method includes computing the static drift and at step <NUM>, the method includes compensating for the static drift. In certain embodiments, the data processing unit <NUM> computes the static drift and compensates for the static drift. The static drift is computed using the below mentioned equations (<NUM>) and (<NUM>). <MAT><MAT>.

Where m is slope of the line, C is the intercept of the fitted line, G is gyro value mean and T is the temperature mean.

From the equations (<NUM>) and (<NUM>), the static drift for a particular temperature is described in the equation (<NUM>)<MAT>.

In equation (<NUM>), the drift calculated from the model contains static drift and temperature drift. 'C' is static drift, i.e., drift at zero degree and m*T is temperature drift. Once the model is completed, the static drift is updated.

According to the non-limiting example of <FIG>, at step <NUM>, the method includes determining temperature variation. The method allows the data processing unit <NUM> to determine temperature variation. At step <NUM>, the method includes computing temperature drift and at step <NUM>, the method includes compensating the temperature drift. The method allows the data processing unit <NUM> to compute and compensate the temperature drift. In certain embodiments, data processing unit <NUM> computes and compensates the temperature drift only when the temperature variation is detected.

As shown in the non-limiting example of <FIG>, at step <NUM>, the method includes determining whether the electronic device <NUM> is in motion. Some gyroscopes present in electronic device <NUM> can suffer from misalignment errors which results in erroneous performance when the electronic device <NUM> is in motion. In certain cases, the misalignment error results in wrong distribution of angular velocity in different axes in a tri-axial gyroscope.

At step <NUM>, the method according to the invention includes computing the dynamic drift when the electronic device <NUM> is in motion. The data processing unit <NUM> computes the dynamic drift.

In certain embodiments, at step <NUM>, a determination of whether the computed compensation parameters are valid is performed. In some embodiments, data processing unit <NUM> determines whether the computed compensation parameters are valid. If the computed compensation parameters are not valid, then at step <NUM>, the compensation parameters are discarded. The drift compensated gyroscope data using computed parameter is integrated to compute the drift present; if the drift is higher than a threshold the parameters are invalidated. The entire validation happens when the static condition is observed by the state detection unit <NUM>.

If the computed compensation parameters are valid, then at step <NUM>, the method includes allocating compensation parameter with current measurement data. The method allows the data processing unit to allocate the compensation parameter with current measurement data.

At step <NUM>, the method includes applying a Kalman filter on the measurement data. The drift compensated signal includes high frequency noise which is removed using the Kalman filter by fusing the orientation data. The Kalman filter is used to compensate the measurement data of the gyroscope with the orientation data of the gyroscope. The state space equation is shown in (<NUM>)<MAT>.

Where θtvalue is form the orientation data and θ is value from the gyroscope and Δt is the constant sampling time. The state transition matrix and observation matrix is shown in (<NUM>) and (<NUM>) respectively. <MAT><MAT>.

The processing noise and the experimental noise is shown in (<NUM>) and (<NUM>) respectively,.

The input matrix for the Kalman filter is shown in (<NUM>)
<MAT>.

The Kalman filter removes the noise and compensates the orientation error to obtain the corrected data at step <NUM>.

In certain embodiments according to this disclosure, the compensation parameter is enhanced by validating the compensation parameter continuously. Further, the received measurement data is continuously updated based on the computed compensation parameter, independent of the gyroscope on the electronic device <NUM>. The proposed method calculates the drift in the compensated data and updates the measurement data to remove error. The method can be utilized independent of the gyroscope on the electronic device <NUM>, thus the proposed method is self-adaptive (i.e. on device learning) to correct the gyroscope drift.

<FIG> and <FIG> illustrate examples of images before and after applying gyroscope drift compensation, according to various embodiments of the present disclosure. As depicted in <FIG>, in <NUM> degrees motion the electronic device <NUM> without drift compensation has repetitions because of incorrect orientation information as shown in <FIG>. For example, although the electronic device <NUM> rotate <NUM> degrees, same objects <NUM> and <NUM> are captured twice because of incorrect orientation information. Further, in <FIG>, there is an incorrect perception of depth and wall length due to incorrect orientation information of the electronic device <NUM>. With the proposed method, the gyroscope drift is compensated. The drift compensation removes the error in angle calculation. Further, the temperature drift compensates the impact of temperature when the usage of camera causes a raise in temperature of the electronic device <NUM>. Thus, the gyroscope drift compensation provides accurate rotation angle, such that the repetitions are removed as shown in <FIG>. For example, a portion of wall <NUM> in <FIG> is more clear than <NUM> in <FIG>. The incorrect perception of the depth and wall length is resolved by compensating the gyroscope drift as shown in <FIG>.

<FIG> and <FIG> illustrate examples of images captured by the electronic device <NUM> after gyroscope drift compensation, according to certain embodiments of the present disclosure. The incorrect orientation of the electronic device <NUM> can lead to a lack of width in a wide angle selfie. With the proposed method for gyroscope drift compensation, the angular rotation of the electronic device <NUM> can be identified accurately. The proposed method can be used to capture wide-angle selfie accurately by the electronic device <NUM> as shown in the <FIG> and <FIG> by compensating for the gyroscope drift.

<FIG> and <FIG> illustrate a comparison of <NUM> images captured by the electronic device <NUM> before and after performing gyroscope drift compensation, according to various embodiments of this disclosure. As depicted in <FIG>, due to the gyroscope drift, the angular rotation of the electronic device <NUM> to capture the image is not accurate. After gyroscope drift compensation using the proposed method, the angular orientation of the electronic device <NUM> while capturing the <NUM> image is accurate and the motion of the image is smooth.

<FIG> and <FIG> illustrate an example of object picking in virtual reality (VR) using a glove, according to certain embodiments as described herein. As depicted in <FIG>, the VR glove contains six gyroscopes to track finger orientation and hand orientation. The VR glove uses IMU to track finger orientation and hand orientation. The corrected gyroscope measurement data helps to track the orientation of each finger joint and the hand itself to create the virtual hand for picking and manipulating objects in a virtual reality/augmented reality environment.

<FIG> and <FIG> are graphs showing angular drift of the gyroscope when the electronic device <NUM> is static, according to prior art. As depicted in <FIG>, when the electronic device <NUM> is static, the orientation of the electronic device <NUM> undergoes drifting. The angle determination when the electronic device is static is shown in <FIG>.

<FIG> and <FIG> are graphs showing corrected angular drift when the electronic device <NUM> is in motion and static respectively, according to various embodiments of this disclosure. In the some methods, when the electronic device <NUM> is in rotated by <NUM>, the electronic device <NUM> rotates to <NUM>, as shown in <FIG>. However, with the proposed method, the angular rotation of the electronic device is close to <NUM> as shown in <FIG>.

In certain embodiments, when the electronic device <NUM> is static, errors removed from the measurement data resulting in zero drift in the angular orientation calculation as show in <FIG>.

<FIG> illustrates a computing environment for implementing methods for compensating gyroscope drift, according to certain embodiments disclosed herein. As depicted in the non-limiting example of <FIG>, the computing environment <NUM> comprises at least one processing unit <NUM> equipped with a control unit <NUM> and an Arithmetic Logic Unit (ALU) <NUM>, a memory <NUM>, a storage unit <NUM>, plurality of networking devices <NUM> and a plurality Input output (I/O) devices <NUM>. The processing unit <NUM> is responsible for processing the instructions of the algorithm. The processing unit <NUM> receives commands from the control unit in order to perform its processing. Further, any logical and arithmetic operations involved in the execution of the instructions are computed with the help of the ALU <NUM>.

In certain embodiments, overall computing environment <NUM> can be composed of multiple homogeneous and/or heterogeneous cores, multiple CPUs of different kinds, special media and other accelerators. The processing unit <NUM> is responsible for processing the instructions of the algorithm. Further, the plurality of processing units <NUM> may be located on a single chip or over multiple chips.

The instructions and codes for implementation are stored in either the memory unit <NUM> or the storage <NUM> or both. At the time of execution, the instructions may be fetched from the corresponding memory <NUM> or storage <NUM>, and executed by the processing unit <NUM>.

In some embodiments, various networking devices <NUM> or external I/O devices <NUM> may be connected to the computing environment to support the implementation through the networking unit and the I/O device unit.

The embodiments disclosed herein can be implemented through at least one software program running on at least one hardware device and performing network management functions to control the elements. The elements shown in the <FIG> include blocks which can be at least one of a hardware device, or a combination of hardware device and software module.

It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation.

Claim 1:
A method for compensating for gyroscope drift on an electronic device (<NUM>), the method comprising:
acquiring, by a gyroscope sensor, measurement data including at least one of an angular velocity or a rotation of the electronic device (<NUM>);
acquiring, from a temperature sensor in the gyroscope, variations in temperature of the gyroscope sensor;
detecting, by a state detection unit (<NUM>) included in a processor (<NUM>) of the electronic device (<NUM>), whether a state of the electronic device (<NUM>) is static or in motion based on the measurement data;
computing, by the at least one processor, a compensation parameter by analyzing the measurement data with respect to the variations in temperature of the gyroscope sensor; and
compensating, by the at least one processor, the measurement data by correcting the measurement data based on the computed compensation parameter, and
wherein the compensation parameter includes a static drift, a dynamic drift, and temperature drift, and
the static drift and the dynamic drift are calculated independently according to temperature and the state of the electronic device (<NUM>), and
wherein computing the compensation parameter comprises one of:
computing the static drift when the electronic device (<NUM>) is static, wherein the measurement data received from the gyroscope sensor is corrected by compensating for the static drift, or
computing the dynamic drift when the electronic device (<NUM>) is in motion, wherein the measurement data received from the gyroscope sensor is corrected by compensating for the dynamic drift.