I am using the BNO055 in the IMU mode as I am interested in obtaining the relative orientation of the sensor since it is powered on.
I am extracting the Quaternion output and then converting it to Euler angles.
I understand that the IMU mode: (1) tracks the coordinate system of the sensor itself - explained in Section 3.4 in its datasheet, and (2) allows the user to track the sensor orientation with respect to its initial pose on power-up.
The problem lies in my observations during testing. Regardless of the initial Yaw angle of the sensor on power-up, the sensor's output orientation treats this initial Yaw orientation as its reference value (i.e. Yaw angle = zero) which is expected since the sensor is running at the IMU mode (relative orientation mode).
HOWEVER, it seems, for some unknown reason, the Pitch and Roll angles follow an absolute orientation. When I intentionally power-up the BNO055 with a non-zero Pitch and/or Roll angles, the orientation output from the sensor (Quaternion -> Euler) shows non-zero Pitch and Roll angles. These values should be initially zero since this is a relative orientation mode, and the sensor should have treated its initial pose as the reference coordinate system regardless of how it is oriented on power-up. Can anyone explain this observation?
It is correct.
When you intentionally power-up the BNO055 with a non-zero Pitch and/or Roll angles, because ACC X/Y have non-zero data, BSX algorithm within BNO055 will output the relative attitude angle.