Difference between revisions of "Homogeneous coordinates"

From Robotics
Jump to: navigation, search
Line 71: Line 71:
 
</math>  
 
</math>  
  
As can be seen in the resulting vector, the first 3 summands of each component belong to the rotational part while the components of the translation vector are added independently of the previous coordinates. So in homogeneous coordinates rotation and translation can be performed with a single transformation matrix. The rotation is applied first and then the translation vector is added. Regarding the particular transformations the multiplication with a homogeneous transformation matrix corresponds to:<br/>
+
As can be seen in the resulting vector, the first 3 summands of each component belong to the rotational part while the components of the translation vector are added independently of the previous coordinates. So in homogeneous coordinates rotation and translation can be performed with a single transformation matrix. The rotation is applied first and then the translation vector is added. Regarding the particular transformations multiplication with a homogeneous transformation matrix corresponds to:<br/>
 
:<math>
 
:<math>
 
\vec{\mathbf{q}}_1=
 
\vec{\mathbf{q}}_1=

Revision as of 11:06, 16 June 2014

← Back: Rotation Overview: Transformations Next: Combinations of transformations

In this article three-dimensional space is regarded because it is usually used in robotics. Rotation of three-dimensional coordinates can be described by a 3-by-3 matrix. All the components of the matrix are multiplied with one of the three coordinates. So the transformation is dependent on the original coordinates. Translation however is actually a vector addition and so independent of the original coordinates (see subarticle about translation).

To be able to also apply a translation by matrix multiplication, an additional dimension is introduced. For vectors, the additional fourth component is always 1. So a three-dimensional vector \vec{\mathbf{q}} in homogeneous coordinates looks as follows:


\vec{\mathbf{q}}=
\left[\begin{array}{c}
q_x\\ 
q_y\\
q_z\\
1
\end{array}\right]

A homogeneous transformation matrix \mathbf{T} for three-dimensional space is a 4-by-4 matrix. \mathbf{T} consists of a 3-by-3 rotation matrix \mathbf{R} and a 3-by-1 translation vector \vec{\mathbf{p}} combined with the last row of the identity matrix:


\mathbf{T}=
\left[\begin{array}{ccc|c}
 &  &  &  \\ 
 & \mathbf{R} &  & \vec{\mathbf{p}}\\
 & & & \\ \hline
0 & 0 & 0 & 1
\end{array}\right]

Let the components of the rotation matrix \mathbf{R} and the translation vector \vec{\mathbf{p}} be denoted as follows:


\mathbf{R}=
\left[\begin{array}{ccc}
r_{11} & r_{12} & r_{13}\\
r_{21} & r_{22} & r_{23}\\
r_{31} & r_{32} & r_{33}
\end{array}\right], \qquad
\vec{\mathbf{p}}=
\left[\begin{array}{c}
p_x\\
p_y\\
p_z
\end{array}\right]

So the multiplication of a homogeneous transformation matrix \mathbf{T} with a vector \vec{\mathbf{q}}_0 in homogeneous coordinates leads to:


\vec{\mathbf{q}}_1=
\left[\begin{array}{c}
x_1\\
y_1\\
z_1\\
1
\end{array}\right]=
\mathbf{T} \cdot \vec{\mathbf{q}}_0 =
\left[\begin{array}{cccc}
r_{11} & r_{12} & r_{13} & p_x\\
r_{21} & r_{22} & r_{23} & p_y\\
r_{31} & r_{32} & r_{33} & p_z\\
0 & 0 & 0 & 1
\end{array}\right] \cdot
\left[\begin{array}{c}
x_0\\
y_0\\
z_0\\
1
\end{array}\right]=
\left[\begin{array}{c}
r_{11}\cdot x_0+r_{12}\cdot y_0+r_{13}\cdot z_0+\mathbf{p_x}\\
r_{21}\cdot x_0+r_{22}\cdot y_0+r_{23}\cdot z_0+\mathbf{p_y}\\
r_{31}\cdot x_0+r_{32}\cdot y_0+r_{33}\cdot z_0+\mathbf{p_z}\\
1
\end{array}\right]

As can be seen in the resulting vector, the first 3 summands of each component belong to the rotational part while the components of the translation vector are added independently of the previous coordinates. So in homogeneous coordinates rotation and translation can be performed with a single transformation matrix. The rotation is applied first and then the translation vector is added. Regarding the particular transformations multiplication with a homogeneous transformation matrix corresponds to:


\vec{\mathbf{q}}_1=
\mathbf{T} \cdot \vec{\mathbf{q}}_0 =
\mathbf{R}\cdot \vec{\mathbf{q}}_0 + \vec{\mathbf{p}}