Technical - How is the pose matrix defined?

August 1, 2012 - 2:40pm #1

The pose matrix that QCAR delivers is a 3x4 matrix row-major matrix. The 3x3 sub-matrix in left three columns is a pure rotation matrix (ortho-normal), whereas the right-most column is the translation vector. The pose matrix represents the pose of the target as seen from the camera. Hence, the translation vector says where the target is as seen from the camera. A value of <0,0,0> means that camera and target are at the same position, whereas a value of <0,0,10> means that the target is 10 units away into the viewing direction of the camera (an seen in the middle of the camera image).

The rotation matrix says how the target is rotated with respect to the camera plane. An identity matrix means that the target is parallel to the camera plane. This pose matrix tells where the target is with respect to the camera. This is exactly what is needed to draw an augmentation. However, it does not tell how the camera is placed with respect to the target. If that is needed then the pose matrix needs to be inverted, which can easily be done by:

[R | t]' = [R' | -R't]

Here, R and t are the rotation matrix and translation vector and ' is the matrix inverse.

Please note that since R is a pure rotation matrix (ortho-normal) the inverse is the same as the transposed and hence trivial to calculate. Here is an image of the coordinate system set up by the pose matrix: https://ar.qualcomm.at/resources/images/coordinateSystems.jpg For info on applying transforms to the pose matrix see this article: Positioning3DContent.xml

Topic locked