# Rotation angle from angular rate

1. Oct 12, 2009

### chathuri

Hi,

I am using an inertial sensor to obtain rotation angle. However the sensor only gives the angular rate and acceleration. Therefore I integrated the angular rate to obtain the rotation angle in real time. However, I noticed that if I keep the sensor stationary, the rotation angle starts to increase or decrease slightly but continuously. I believe this has somethin to with a drift caused by the integration.

Would anyone know how I could fix this issue. Im very knew to this and was hoping you could help me out.

Thankyou!

Chathuri

2. Oct 12, 2009

### mgb_phys

It's an intrinsic problem of all rate sensors. (It's why 727s have a window above the cockpit to see the stars)
Best option is to be able to reset to a fixed point periodically - eg by having a separate sensor that detects when it's level.
Second best is to model the drift and apply a correction - but the drift is likely to be temperature dependant and may differ from one unit to the next.

3. Oct 13, 2009

### chathuri

Thanks for your reply. But I need to clarify. Do you mean I should check if the sensor is stationary (probably see if the acceleration is close to 0) and then keep the previous value of the rotation angle without integration???

If acceleration <0.01 then theta = theta_prev

Thankyou!

Chathuri

4. Oct 13, 2009

### mgb_phys

If you have an acceleration sensor then when it reads zero you don't know that it is in any particular angle.
To o this accurately you need an external reference, such as a separate level sensor that triggers when the device is exactly horizontal and use this to reset your angle integrator. Or you might be able to get a reset when, for instance, a shaft passes some particular point.

5. Oct 13, 2009

### Cleonis

You have not described in any way how you have implemented the integration. What kind of device performs the integration? Is the device such that a systematic bias may occur? If so, how large a systematic bias? Can it account for the drift?

You are not providing enough clues to give me something to work with.

What do you mean with: 'When I hold the sensor stationary'? For instance, if a rotation sensor is stationary with respect to the Earth, then it will register the Earth's rotation rate. (Depending on the type of rotation sensor the sensor's orientation with respect to the Earth's axis will also be a factor in how much rotation is registered.)

High performance rotation sensors are easily sensitive enough to register the Earth's rotation. Effectively, the prime judge of 'being stationary' is the rotation sensor itself. If it registers zero rotation rate then it's stationary.

Cleonis

Last edited: Oct 13, 2009
6. Oct 13, 2009

### chathuri

Hi

I am sorry for not explaining myself clearly. The sensor that Im using is ADIS16350 from Analog Devices. Before taking reading I use a command to correct the gyroscope bias. Then Im using the following equations to calculate the rotation angle (theta) from the angular rate (w).

theta(k+1) = (w(k+1) - w(0))*t + theta(k);

Here t=0.01 as the sampling rate is set to 100Hz. The w(0) is zero frequency offset of the rate gyro and is determined as the average of the angular rate for the initial 49 samples. 'k' represents the sample number.

When the sensor is held with no motion (rate gyros readings are close to zero but not zero) the drift occurs. I believ this is because the rate gyro gives a slight reading.

Is there a conventional method to deal with the drift? I am sorry if Im asking obvious questions. It is just that I am very new to dealing with sensors.

Thank you!

Chathuri

7. Oct 14, 2009

### Cleonis

I apologize for doubting the thoroughness of your preparations. Clearly you know as much as I do. I have to confess I'm not better equipped than you are to find where the drift is entering the system. Good luck with your efforts.

Cleonis