I am trying to combine rotation information from two system in a VR/AR scenario, one is a computer vision solution/ visual SLAM coordinate, initializing the first frame as the world origin as position[0,0,0] and rotation[0,0,0]. the other one is a IMU coordinate, always gives the roll, yaw and pitch Euler angle with respect to the physical environment coordinate.
I think I can represent the rotation in the visual SLAM coordinate by the difference from the IMU coordinate.
In frame 0: visual SLAM system initialized, visual SLAM coordinate as origin with zero position and zero rotation; IMU gives a Quaternion: q_imu_zero, with respect to IMU coordinate.
In frame 1: IMU gives current Quaternion: q_current; the transform from frame 0 to current: q_imu_transform: q_imu_zero(-1) * q.
Question: Can I use the q_imu_transform to rotate in the visual SLAM coordinate system?
In my experiment in Unity editor, some of the axis rotation is meshed up and always wrong. when I rotate around y axis of my device, IMU gives the right rotation in the IMU coordinate, but visual SLAM system is rotated around z axis.