Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

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

    Bernward
    Member

    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 datarax x,y,z data

    raw x,y,z data

    integrated x,y,z and temp dataintegrated x,y,z and temp data

    integrated x,y,z data, constant temperature

    Thanks,

    B.

    4 REPLIES 4
    FAE_CA1
    Community Moderator

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

    Hi,

    Thanks for your inquiry.

    BMG250 has noise from ADC. The noise level is +/-0.07dps at 200Hz ODR. At +/-125dps full scale range the sensitivity is 262.4LSB/dps. So the noise level at 50Hz ODR = +/-0.07dps * 262.4LSB/dps = +/-18LSBs. Please check your system to find out the reason why you got +/-100LSB noise.

    In addition, if you want to integrate BMG250 raw data over time to get pitch/roll/yaw angles, you need to implement a high-pass filter to filter out the noise when BMG250 is at rest. Then those angles will not diverge over time.

    Thanks.

    Bernward
    Member

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

    thanks for your answer. which cut-off frequency are you proposing?
    Thanks, B.

    FAE_CA1
    Community Moderator

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

    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.

    Bernward
    Member

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

    yes, using now odr 200Hz, thus 5ms readout, 2000DPS, 20* moving average, 2nd order IIR 25Hz, Final Integrator stage gives

    Bernward_0-1620029105373.png

     

    for a handmove turn of 90°. Seems like that I need to downsample this result a bit, but effectively it seems to do its job.

    Thanks a lot,

    B.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist