I've been given Omega/Phi/Kappa data from drone surveillance photos and I need to convert it to Euler angles (or a quaternion, I'm not fussy).

I've been given the opk data in X right Y up format, and I need to convert this to an Euler angle in a X right Z up coordinate system. This is taken from the Autodesk Forge Viewer which is matching the Revit coordinate system.

I'm trying to match the camera angle in the Forge viewer to the drone's camera angle.

Am I right in assuming the opk angle is basically an Euler angle already?

In which case, should I use the default XYZ Euler order?

Finally, how do I convert X right Y up to X right Z up?

I assumed just switching the Y/Z axes was the correct transform here but that's not giving me the right result.

Edit: here's an image of the coordinate system I need to match:

enter image description here


I don't know autodesk, but the standard for omega/phi/kappa in photogrammetry (by plane or drone) is that omega is a rotation around X, phi is a rotation around Y and kappa is a rotation around Z. The figure below illustrates the case of omega

Omega rotation, around X

This rotation will be done using a 3*3 matrix that does not modify the X values. Similar matrices are used to rotate around Y and Z (then the Y (or Z) row and column values are set to 0 except the diagonal that is 1)

enter image description here

Now, if you want the rotation matrix (Euler angle) you need to multiply the 3 individual rotation matrices in the good order. omegaphikappa

items of the rotation matrix

Not sure to understand what you mean by switching the axes, but I think that what you need is changing the order R_omega, R_phi and R_kappa.

  • switching the axes: I mean conversion between the coordinate system - I have the OPK data in a X right Y up coordinate system (seems like that is nonstandard but that's out of my control) and I need to convert it to an X right Z up coordinate system. I've added an image above to help illustrate. – Lewy Blue Jan 25 '20 at 14:02
  • > if you want the rotation matrix (Euler angle)... Thank you for this, but I already know how to make a rotation matrix from Euler angles. What I need to know is what order the Euler is in. An Euler angle is 3 rotations around X, Y and Z along with an order in which to perform the rotations. The order can be xyz or yzx or zxy or xzy or zyx or yxz. What you have described is how to convert an Euler angle with xyz order into a rotation matrix. So I assume that means OPK is in xyz order. – Lewy Blue Jan 25 '20 at 14:16
  • To further clarify, there are two steps I need to complete: 1. figure out the correct order 2. convert between coordinate systems – Lewy Blue Jan 25 '20 at 14:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.