BMG250 Can't get integrate x,y,z to stable values

Hi, I'm using this gyroskope sensor in a real-time environment to judge Roll, Pitch and Yaw of a telescope.
I'm using foc data and no fifo, but I'm reading the sensordata slightly quicker than the refresh rate and using sensortime to discard duplicate values.
DPS is 125, ODR at 50Hz.

My system is at resting position, but the sensor data keeps jittering at +-100ST. Now If I'm integration all values, all three position values keep drifting.
See pictures attached. Any ideas what I can improove?
,

rax x,y,z data

raw x,y,z data

integrated x,y,z and temp data

integrated x,y,z data, constant temperature

Thanks,

B.

Best reply by FAE_CA1

Hi,

I propose 200Hz ODR so that you can verify if you can get clean data from BMG250 or not. If yes, then you can implement your own low pass filter such as moving average to reduce the noise further. Then you can implement your own high pass filter so that BMG250 x/y/z data should be around 0dps when it is at rest. In addition, you can also set a small dead zone for example +/-0.5dps to detect if BMG250 is at rest or not. If x/y/z data are within +/-0.5dps range, then it means that BMG250 is at rest and you can manually set them to 0dps so that your integration over time for Euler angles doesn't diverge over time when it is at rest.

Thanks.

View original
4 replies
Resolved