Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gyro Sensor drift and Correct angle Estimation

I am using LG Optimus 2x smartphone(Gyroscope and Accelerometer sensor) for positioning.

I want to get correct rotation angles from gyroscope that can be used later on for body to earth coordinate transformation. My question is that

How I can measure and remove the drift in gyro sensor.

The one way is to take the average of gyro samples (when mobile is in static condition) for some time and subtracting from current sample, which is not good way.

When the mobile is in rotation/motion how to get the drift free angles?

like image 974
Navigator Avatar asked Aug 30 '11 16:08

Navigator


People also ask

How do you find the angle of a gyro?

The outputs of the gyroscope are in degrees per second, so in order to get the angular position, we just need to integrate the angular velocity. The accelerometer can measure gravitational acceleration along the 3 axes and using some trigonometry math we can calculate the angle at which the sensor is positioned.

What is gyroscope drift?

Gyro drift is a slow changing and random process. Attitude angle is obtained by integral calculation of angular velocity. Attitude measurement errors are easily produced due to gyro drift. The longer work time, the greater the error [15].

What is the accuracy measurement of a gyro sensor?

When rotating the sensor counter-clockwise thorough 360° fairly quickly, I almost always got measured angle changes of between 359° and 363°, with an average of about 361°. This means the sensor was usually fairly accurate in measuring counter-clockwise rotation.


2 Answers

As far as I know, either the Kalman filter or something similar is implemented in the SensorManager. Check out Sensor Fusion on Android Devices: A Revolution in Motion Processing.

You are trying to solve a problem that is already solved.

like image 110
Ali Avatar answered Oct 17 '22 06:10

Ali


I am the author of a compass application that integrates data from magnetic and gyroscope sensors (steady compass). I have tested this application mostly on a LG Optimus black (the device that you can see on the video) running Android 2.2, so I am going to share my experiences:

  • Gyroscope readings are very accurate. This sensor is just the opposite to accelerometer and magnetic sensors which give readings with a lot of jitter.
  • The readings from the gyroscope (i.e. the angular speed) does not drift at all. You will have a drift in the estimation of the orientation if you just integrate gyroscope readings. Since you are integrating samples in different times, you will obtain just an approach that will degrade after every integration step.
  • In order to avoid such a drift in the orientation estimation, you must consider other input sources to correct the results coming from gyroscope data integration. The solution is the integration of data coming from the orientation sensor (magnetic + acceleration) and data coming from the gyroscope.

Be careful with LG phones: According to the Android API, gyroscope will return data in rad/s. The LG Optimus Black with Froyo gives readings in degrees/s. The update to Android 2.3 has just been released for such phone. I have to test whether the new version behaves according to the specifications.

What Android version does your phone have? Have you tested any application using gyroscope? Did you get the expected results?

like image 25
jap1968 Avatar answered Oct 17 '22 08:10

jap1968