Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 How to use Euler angles

    BNO055 How to use Euler angles


    Hi all,

    I'm using BNO055 to get Euler angles roll and pitch (angles are less 30 degrees, so not quaternions). After turning on the power of the sensor, I reset sensor and select the IMU mode, no more settings are performed. In the manual, I did not find a detailed description of the use of the Euler angles of this sensor, so I ask you to help with the following questions:

    1) What angle (roll, pitch, heading) which axis corresponds on the image of the default coordinate system (section 3.4 of the manual). 
    2) What is the default direction of rotation for each axis? The one indicated by the arrows in the image?

    3) What is the default Fusion data output format (Android or Windows) on power-up and reset? The manual seems to be a contradiction: in table 4.2 (Register Map Page) the default value 0x80 is specified for the UNIT_SEL register, i.e. ORI_Android_Windows bit is equal to 1. Meanwhile, in item 4.3.60, this bit is set to 0 (after Reset).
    4) What is the order of the rotations? And do I need to rotate the axes of rotation when turning?

    7 REPLIES 7

    Community Moderator
    Community Moderator

    Hello insight,

    If you want to get Euler angles output data, you should use config sensor to fusion mode. Please refer fusion mode chapter in BNO055 data sheet.

    1.This is default sensor coordinate system in section 3.4, then you can refer to the black dot to know the sensor coordinates.

    2 & 4.Euler angle itself is not described in data sheet.
    Yaw: the Y-axis of the Euler angle vector
    Pitch: the x-axis of the Euler angle vector
    Roll: the z-axis of the Euler angle vector

    3.Default setting is windows orientation. Haven't find contradiction, please refer the following picture from data sheet:

    BNO055 4.3.60 UNIT_SEL 0x3B.png

    Hello, BSTRobin,

    Thanks for your reply. I looked at the wikipedia article and got some questions.

    1. There exist two different conventions for the definition of the rotation axes:
    Intrinsic rotations are elemental rotations that occur about the axes of a coordinate system XYZ attached to a moving body.
    Extrinsic rotations are elemental rotations that occur about the axes of the fixed coordinate system xyz.
    What convention is used by BNO055?

    2. There exist twelve possible sequences of rotation axes:
    Proper Euler angles (z-x-z, x-y-x, y-z-y, z-y-z, x-z-x, y-x-y)
    Tait–Bryan angles (x-y-z, y-z-x, z-x-y, x-z-y, z-y-x, y-x-z). 
    What sequence is used by BNO055? Is it z-y′-x″ with intrinsic rotations?

    3. Did I mark the pitch / roll / heading angles correctly in the picture? 

    Копия (1) 2021-08-24--005231.png

    4. Table 3-13 (Windows format) of the manual says that "turing clockwise increases values" of pitch. "Clockwise" - is it looking against the direction of the corresponding axis?

    Копия (1) 2021-08-24--113800.png

    5. Table 3-13 says that "Roll increasing with increasing inclination". Is turning clockwise decreasing or increasing the values (using Windows format)?

    Копия (2) 2021-08-24--113800.png

    Community Moderator
    Community Moderator

    Hello insight,

    1: We use Intrinsic rotations. You can test the BNO055 in dd2.0. After giving a pitch angle(around y axis), like 30deg, first, and then give a roll angle(around x axis), like 30 deg, then you can see that the pitch angle stays at 30deg. So we use the axis attached to the device, which is Intrinsic rotations.

    2: We use the Tait-Bryan angles. And both z-x-y and z-y-x are OK. You can test it by firstly rotate around z axis for like 30deg, and then rotate around x axis for 30 deg, and then around y axis for 30 deg. You can then see the angles on each axis are staying 30 deg. That's the same with z-y-x. You can try these sequence in rotation matrix to see whether your transformation is correct.

    3: For windows solution, the angle around x axis is pitch, and the angle around y axis is roll. You can test this also according to Table 3-13. Because the range of pitch is -180~+180deg, and the range of roll is -90~+90deg. You can rotate the device and check the range.

    4: You can simply use the right-hand rule to decide the increase direction.

    5: After self-test, when the x axis nose up, the roll angle increases. And when the x axis nose down, the roll angle decreases.

    Community Moderator
    Community Moderator

    Hello insight,

    Do you have further question?