Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BHI360 + BMM150 Remap to work on Vertical Z Issue with EULER

    BHI360 + BMM150 Remap to work on Vertical Z Issue with EULER

    Hello, currently i'm trying  remap de sensors to work on vertical, but I get wrong values in Z when I am using EULER, it's a sensor limitation or i need to do more than set the Remap Matrix?

    bhy2_orient_matrix accGyroMatrix = {
    .c = {0, 1, 0, 0, 0, 1, 1, 0, 0}};
    bhy2_set_orientation_matrix(BHY2_PHYS_SENSOR_ID_ACCELEROMETER, accGyroMatrix, &bhy2Device);
    bhy2_set_orientation_matrix(BHY2_PHYS_SENSOR_ID_GYROSCOPE, accGyroMatrix, &bhy2Device);
    bhy2_orient_matrix magMatrix = {
    .c = {0, 1, 0, 1, 0, -1, 0, 0, 0}};
    bhy2_set_orientation_matrix(BHY2_PHYS_SENSOR_ID_MAGNETOMETER, magMatrix, &bhy2Device);
    6 REPLIES 6

    BSTRobin
    Community Moderator
    Community Moderator

    Hi brunohorta2023,

    Axis mapping is necessary.
    1.Firstly, you need to clarify what your coordinates look like?
    2.Secondly, it is necessary to know how BHI360 and BMM150 are palced in the structure of your product?
    3. Then, generate the axis mapping matrices for Accel, Gyro, and Mag based on 1 and 2. Test EULER output again.

    Hello, my sensor is vertical showed in the attached picture, I'm using the Bosch shuttle board.

     

    Hi brunohorta2023,

    According the information you provided, the axis mapping matrix should be:

    struct bhy2_orient_matrix acc_matrix = {0, 0, 1, 0, -1, 0, 1, 0, 0};
    struct bhy2_orient_matrix gyro_matrix = {0, 0, 1, 0, -1, 0, 1, 0, 0};
    struct bhy2_orient_matrix mag_matrix = {0, 1, 0, 0, 0, -1, -1, 0, 0};

    In addition, you can refer to the software code in the attachment and enable accel, gyro and mag for calibration. The calibration status can be obtained through the callback function. Usually, the sensor calibration is completed only when the calibration status reaches 3.

    Calibration is not automatically completed by the sensor and needs to meet the following conditions:
    Accel: 6 axes calibration.
    Gyro: keep sensor stable.
    Mag: hold the device in hand and draw an eight movement in the air.
    The built-in BSX algorithm of BHI360 runs in the background, only requiring the device to meet the above calibration conditions. Please refer to this video for detailed calibration method: https://www.youtube.com/watch?v=Bw0WuAyGsnY

    After the calibration status of accel, gyro, and mag reaches 3, use the algorithm output from BSX (such as quaternions, euler, etc.).

    Hello thanks for the reply, the ACC em Gyro matrix seems ok with my tests but for the magnetometer BMM150 I can't get the same values as you.

    your values: struct bhy2_orient_matrix mag_matrix = {0, 1, 0, 0, 0, -1, -1, 0, 0};

    my values: struct bhy2_orient_matrix mag_matrix = {0, 0, -1, 0, 1, 0, -1, 0, 0};

    I attach one print screen with my results 

    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