2

When I have the rotation matrix or quaternion representation of a camera's pose, is there a way to obtain the orientation vector of the camera?

Here the orientation vector means a 3D vector in the world coordinate (WC) that represents an orientation.

I read through the commonly used representations like euler angles and axis-angle, but I didn't find any representations that can represent the orientation of the camera in WC.

Could anyone help? Thank you!

Simon Rio
  • 39
  • 7

1 Answers1

2

You probably want the 3x1 Rodrigues vector. Just plug in the SO(3) rotation matrix of the camera orientation in world coordinates, and you will get a vector representation. Just to be clear, pose and orientation are different. Pose is orientation + position. If you want the position as well, that can be represented as a 3x1 vector of t = [x y z]' (using Matlab notation).

A typical representation of the pose is a 4x4 matrix in SE(3) (Special Euclidean Group), which is just:

T = [R t; 0 0 0 1]

Where R is the rotation matrix in SO(3).

Nate M
  • 96
  • 2
  • Thanks Nate! But are you sure that Rodrigues vector is the same as camera orientation? I'm not really clear about the **semantic meaning of Rodrigues vector**. Could you please explain more? – Simon Rio Aug 23 '18 at 01:01
  • The Rodrigues vector will represent whatever the rotation matrix represented that you feed into the Rodrigues function. Many OpenCV camera calibration functions use the Rodrigues form to represent orientation. So in the end, if the quaternion/rotation matrix represents the orientation of the camera in world coordinates, then so will the Rodrigues vector when you do the transformation. I would refer to the link in my response to see the mathematical formulation of the vector. – Nate M Aug 23 '18 at 01:14