Representation of coordinate frames in 3 dimensions

465 Views Asked by At

I am dealing with transformation of vectors from one 3D Cartesian reference frame to another one. My question is, what formalism specifies a 3D Cartesian reference frame: perhaps the origin, the handedness of the axes, the order of the axis labels.

If there such a representation or specification of orthogonal coordinate frames, and an algebra associated with such a representation, then can we axiomatically derive the coordinate transformations, from some such a arbitrary coordinate frame R1, to another arbitrary frame R2, given the representations of R1, and R2 declaratively, with respect to a basis frame R0?

3

There are 3 best solutions below

4
On

You need 4 vectors: three of them are axis orientations, and one is the translation of the origin. This is enough to describe also a non-orthogonal reference frame. You can reduce that number by one by replacing one of the axis vectors with handedness (only for orthonormal systems) If you want to look at how to transform from one such system to the other, look up affine matrix.

4
On

Almost universally people use a right-hand-system, where three values are the components along the thumb, the index, and the middle finger. This is built in the definition for the vector cross product such that the 3rd axis can be defined by the cross product of the first two. It does not matter what you label them, as long as you are consistent.

For example, you know the axis components for two othogonal axes $\hat{u}=(u_x,u_y,u_z)$ and $\hat{v}=(v_x,v_y,v_z)$ and can find the third one $\hat{w} = \hat{u} \times \hat{v}$

where $\times$ is the vector cross product.

There are some requirements though in general to define a 3D Cartesian system:

  • Unit Vectors: $ \hat{u}\cdot\hat{u} = 1$, $ \hat{v}\cdot\hat{v} = 1$, $ \hat{w}\cdot\hat{w} = 1$
  • Orthogonal Vectors: $\hat{u}\cdot\hat{v} = 0$, $\hat{v}\cdot\hat{w} = 0$, $\hat{w}\cdot\hat{u} = 0$

where $\cdot$ is the vector inner product.

In the end, you end up with a 3×3 rotation matrix $\mathrm{R}$ which has the $\hat{u}$, $\hat{v}$ and $\hat{w}$ axis components in its columns. This matrix transforms from local to world.

$$\begin{aligned} \mathrm{R} & = \left[ \begin{array}{c|c|c} \hat{u} & \hat{v} & \hat{w} \end{array} \right] \\ & = \left[ \begin{array}{ccc} u_x & v_x & w_x \\ u_y & v_y & w_y \\ u_z & v_z & w_z \end{array} \right] \end{aligned} $$

Say you have a point A defined on the local coordinate system as $\vec{a}=(a_1,a_2,a_3)$. In the world coordinate system, the three components of the vector are calculated by $ \vec{A} = \mathrm{R}\, \vec{a}$.

This transformation matrix has the property that $\mathrm{R}^{-1} = \mathrm{R}^\intercal$ as it swaps the rows and columns describing the world coordinates in terms of the local coordinates. So the local coordinates for point A are $ \vec{a} = \mathrm{R}^\intercal\, \vec{A}$

So now you have a framework where given the origin $\vec{p}$ and the orientation of a coordinate system $\mathrm{R}$ you can describe the position of a point A riding on this coordinate frame as

$$ \vec{A} = \vec{p} + \mathrm{R}\, \vec{a} $$

and in reverse

$$ \vec{a} = \mathrm{R}^\intercal \left( \vec{A} - \vec{p} \right) $$

Finally, to move between two reference frames [1] and [2], go from local of [1] to world and then from world to local of [2]

$$ \vec{b} = \mathrm{R}_2^\intercal \left( (\vec{p}_1 + \mathrm{R}_1\, \vec{a}) - \vec{p}_2 \right) $$

0
On

A frame, orthogonal or not, can be characterized by an origin point, let $o$ and a matrix formed by the axis vectors, let $R$.

To transform a point expressed in the frame $1$ to coordinates in the frame $2$, we write $$o_1+R_1p_1=o_2+R_2p_2$$ or $$p_2=R_2^T(o_1-o_2)+R_2^{-1}R_1p_1=o_{12}+R_{12}p_1.$$

Such an affine transformation has $12$ degrees of freedom.

In the case of orthonormal frames, the transformation is called rigid. The matrices are orthogonal, i.e. such that $R^{-1}=R^T$, and the transformation has only $6$ degrees of freedom.