According to its specifications (page "11"|14), the Vive Tracker's coordinate system is right-handed Y-Up, X-Lateral, and the reference orientation is somehow determined from the area spanned by the HTC Vive base stations.
I am trying to align this coordinate system and reference orientation with an IMU (which uses a Z-Up, X-Lateral, RH-system and the magnetic north pole as reference), but when rotating the quaternion data I obtain from the Vive Tracker through the OpenVR C++ API in a way that it should match the IMU's coordinate system and reference, there is still some yaw component in the Tracker data when I perform a roll motion on both the IMU and the Tracker simultaneously.
Hence, does the OpenVR API do some orientation data pre-processing, so that quaternions received from OpenVR don't necessarily correspond to the device's coordinate system any more? Or may I be doing something else wrong?