Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 data interpretation

    BNO055 data interpretation

    New Poster

    I needed a detiled explanation on the data output given by BNO055. 

    I was retriving euler angles from the BNO055 which I assumed to be in XYZ extrinsic(ie zyx[yaw,pitch,roll] intrinsic). But it does not seem to match with a software that I use. The software I use, uses right handed curl rule(i.e anti-clockwise rotation as positive) and it seems BNO055 uses left handed curl rule(i.e clockwise rotation as positive)

    I am trying to decompose the matrix to retrive Intrinsic rotations from the angles given. So knowing the Actual sequence of Extrinsic rotation is crucial. So it will be helpful it is mentioned. Also the the BNO055 gives euler values in the Heading, roll and pitch values But the pitch values given by BNO055 is about X axis which when compared to standard yaw pitch roll matches with the Y axis hence decomposing the Euler angles doesnot work properly.

    can you please mention the proper euler angle extrinsic sequence given by BNO055 ?

    I know its good to use Quaternion output when using for big angles I tried using it as well and comparing with the angles given by the software which uses Right handed curl rule and the signs of the quaternion output by BNO055 differ (although values are the same)

    So it seems that the BNO055 uses left handed curl rule(i.e clockwise positive) OR I am getting it wrong all together.

    I need a reliable method to convert quaternion to a rotational matrix(extrinsic most probably) and then decompose to find the intrinsic rotation or directly convert to Intrinsic angles from the matrix. But the problem is with the sequence and the sign(clcokwise or anti-clockwise rotation).

    I am refering wikipedia for most of the data 

    3 REPLIES 3


    I'm not entirely sure what your issue is...


    BNO055 Euler angle output is configured by the register map : either Windows or Android format. In addition, the BNO055 automatically switches the reference plane automatically wheter it is mounted on the top side or bottom side of the PCB. From your question alone I would highly recommend that you simply forget the BNO055 output altogether.

    Starting with the quaternions, you can re-calculate the Euler angles in floating point in your host, in the format that you like.


    The document snippet attached helped many before you.



    Ok. Understood thank yout for the answer.

    had another doubt. The quaternion output denotes what active or passive rotation. Does the quaternion denote IMU's frame with respect to the world frame or the world frame with respect to the IMU 's  frame.

    suppose i want to calculate difffeernce in angle(euler) between two consecutive IMU reading (measured in quaternion)?

    The rotation vector is using a fixed frame of reference.

    In IMU mode, the reference angle is the orientation when the device was turned on.
    In NDOF and compass modes, the reference angle is the orientation when the device was turned on at first, then there is a single discontinuity in the signal when magnetic North is found. The rotation vector is then the angle between the sensor and magnetic North.