I know that the pose matrix of a trackble is basically:

1. a rotation matrix
this rotation matrix describes how to rotate from
the camera's coordinate frame to the trackble's
coordinate frame.

2. a translation vector
this vector describes how to translate from the
origin of the camera to the origin of the trackble.

my questions:

1. is above statement about the pose matrix correct?

2. about the rotation matrix, I know how the coordinate
frame of the trackble is defined,
since it's metioned in the dev's guide:

but how the coordinate frame of the camera is defined?

thank you very much!

The pose matrix represents the pose of the target as seen from the camera. It is a 3x4 row-major matrix. The 3x3 sub-matrix in the left three columns is a pure rotation matrix (ortho-normal), while the right-most column is the translation vector.

I'm trying to find out about the coordinate frame of the camera... I believe it's the typical OpenGL setup with the camera at the origin pointing down the Z axis (not sure if that's Z or -Z though). I'll update once I find out.

- Kim

Hi salous, I don't know whether this will help but I put some code for getting translation & rotation from the pose matrix here:
http://ar.qualcomm.at/node/2001377

Okay, I've gotten confirmation. The camera sits at the origin and points in the positive Z direction. Positive X is to the right. Positive Y is down. This makes it a right-handed coordinate system. It is similar to the default OpenGL coordinate system, but rotated 180 degrees around the X axis.

This also means that the camera's coordinate system is the same as the target's, just rotated by 90 degrees around the X axis.