given position and orientation of two coordinate frames, how can transfer a vector from one frame to another.

The position is given in Cartesian space and the orientations in quaternion or Euler angels.


A homogeneous transform $T$ is 4x4 matrix that looks like:

$$T=\begin{bmatrix} R & t \\ 0_3 & 1 \end{bmatrix}$$

where $R$ is a 3x3 rotation matrix and $t$ is the translation. The rotation matrix can be calculated by converting either the quaternion or the euler angles.

This matrix is used to transform a point from one coordinate system to another. The equation would look like this:


with $p$ representing a point in the homogeneous form which is just appending a 1 to the end of it.

$$p=\begin{bmatrix} p_x \\ p_y \\ p_z \\ 1 \end{bmatrix}$$

If you don't want to use the homogenous form then the equations just break down to


here $p$ is just a 3x1 vector without the 1.

You can directly use the quaternion if you change the rotation matrix multiplication to quaternion multiplication.

$$p_A=q_{AB}\otimes p_B+t_{AB}$$.

This equation converts a point in the $B$ coordinate system into the $A$ coordinate system.

You have or can easily figure out $T_{AB}$. I don't know how you are storing the vector, but it can always be broken into 2 endpoints. Now just use the equation above to transform both points, and then convert back into your vector format.


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.