Rotation around arbitrary axes - wrong Euler angles
Posted: Thu Jun 14, 2012 2:50 am
Hi,
we are trying to implement an augmented reality setting with an Android phone being tracked by an Optitrack V100:R2 system. We currently use the NatNetSamples for streaming the position and rotation data to the smartphone but we are facing several problems with the orientation part.
We therefore looked at the grid showing the current data of the rigid body (direct in the natnetsample - before we do any calculations) and we do not understand the angles we see there.
When the device (with the attached markers) is in the same position as we calibrated the rigid body in Arena (device lying flat on a table), everything works fine (rotation around y axis pointing up is indicated as rotation around y, around z indicated as z and x as well). But when we change the orientation of our device (for example having the device pointing up, display facing a wall) then the rotations get weird. If we rotate around the global x axis, we see it in the grid as a rotation around the z axis but when we rotate around the global z axis, we also see it as a rotation around the z axis in the grid.
So two different rotations lead to the same result in the outputs.
Is there a reason for this or how can we fix this?
Kind regards,
fkerber
we are trying to implement an augmented reality setting with an Android phone being tracked by an Optitrack V100:R2 system. We currently use the NatNetSamples for streaming the position and rotation data to the smartphone but we are facing several problems with the orientation part.
We therefore looked at the grid showing the current data of the rigid body (direct in the natnetsample - before we do any calculations) and we do not understand the angles we see there.
When the device (with the attached markers) is in the same position as we calibrated the rigid body in Arena (device lying flat on a table), everything works fine (rotation around y axis pointing up is indicated as rotation around y, around z indicated as z and x as well). But when we change the orientation of our device (for example having the device pointing up, display facing a wall) then the rotations get weird. If we rotate around the global x axis, we see it in the grid as a rotation around the z axis but when we rotate around the global z axis, we also see it as a rotation around the z axis in the grid.
So two different rotations lead to the same result in the outputs.
Is there a reason for this or how can we fix this?
Kind regards,
fkerber