Hi. I am using FXAS2100X with Accelerometer and magnetic sensor to get a roll, pitch, yaw.
and I want to decrease gyro sensor drift error as much as i can.
Question :
I found that FXAS2100X(gyro) has resister to initiate drift offset. and if i use this register periodically, can i reduce a offset error slightly??
Solved! Go to Solution.
This feature simply makes a measurement of the gyro rate and then subtracts it off from future measurements. Of course, you have to be absolutely sure that the gyro is not rotating when this feature is used. From a user interface viewpoint, users may not like the extra step of ensuring the unit is stationary and then pressing a button.
It also doesn't fundamentally solve the problem of gyro integration over long periods of time. The gyro offset is temperature, orientation and acceleration dependent and software integration errors will also add up over time. So you'll still need to use a Kalman or other filter to stabilize the orientation to the gravity and geomagnetic vectors.
This feature simply makes a measurement of the gyro rate and then subtracts it off from future measurements. Of course, you have to be absolutely sure that the gyro is not rotating when this feature is used. From a user interface viewpoint, users may not like the extra step of ensuring the unit is stationary and then pressing a button.
It also doesn't fundamentally solve the problem of gyro integration over long periods of time. The gyro offset is temperature, orientation and acceleration dependent and software integration errors will also add up over time. So you'll still need to use a Kalman or other filter to stabilize the orientation to the gravity and geomagnetic vectors.
I'm sorry I have one more question.
I tested the board(9-axis) and measured a time to stabilize Yaw(compass) values.
scenario ::
movement -> stop -> measuring a time until Yaw values is fixed.
and it takes 10~15sec. i am sure that the board was moving sufficiently before measurement.
Why did it take a long time to stabilize ? it is problem of magnetic sensor or gyro sensor?
The answer is that everything is a tradeoff.
On power up, we have no knowledge of the offset for the gyro sensor so we assume zero and let the Kalman filter decide on the value. This takes tens of seconds but is much safer than using the initial gyro reading and assuming that is the offset. The user could be rotating the PCB at up to 2000 deg per sec so we don’t want to assume that the board is stationary. So zero deg offset is a sensible initial value.
After power up, the gyro offset is very slowly varying. It’s essentially constant apart from some second order dependence on temperature and gravity (orientation). We don’t want it to change very quickly after power up and of course that makes the initial convergence at power up take tens of seconds.
If the power up convergence was faster then the gyro offset would be affected by aggressive hand motion during gaming applications.
Thank you
and I am sorry about continuous questions, i am short of sensor knowledge, it is very difficult
if i understood correctly,
1. power up
2. Give information to kalman filter sufficiently by moving the board for a long time
3. And Let the board be stationary.
after 3 steps, is it nomal operation to take 10 sec for fixing the Yaw values?
I thought that if i gave enough gyro values to kalman filter, it is natural to find fixed yaw value fast because it is not right after power up
and I thought magnetic sensor helps to find fixed yaw value
Is there a way to change the values quickly?
Thank you
A balance must be found between power on estimation of the gyro offset and tracking of the gyro offset drift over time.
One solution would be to ask the end user to place the PCB stationary and then use that value to estimate the gyro offset.
And then the gyro offset could be saved to non-volatile memory and then read on power up.
Thanks a lot.
have a great day!:smileyhappy: