Homogeneous Coordinates

Homogenous Co-ordinates

Six degrees of Freedom

  • Translation - add \(T=[y_1,y_2,y_3]\)
  • Rotation - multiply by \(R=\exp(\hat{[\omega_1,\omega_2,\omega_3]})\)
  • \(x\mapsto xR+T\) is affine, not linear

This is the same for motion and for change of basis (rotate and shift the origin).

Points in Homogenous Co-ordinates

  • Point \(\textbf{X}=[X_1,X_2,X_3]^\mathrm{T}\in\mathbb{R}^3\)
  • Embed in \(\mathbb{R}^4\) as \(\mathbf{\tilde X}=[X_1,X_2,X_3,1]^\mathrm{T}\in\mathbb{R}^4\)
  • Vector \(\vec{pq}\) is represented as \[\mathbf{\tilde X}(q)-\mathbf{\tilde X}(p) = \begin{bmatrix} \mathbf{ X}(q) \\ 1 \end{bmatrix} - \begin{bmatrix} \mathbf{ X}(p) \\ 1 \end{bmatrix} = \begin{bmatrix} \mathbf{X}(q) - \mathbf{X}(p) \\ 0 \end{bmatrix}\]
  • In homogenous co-ordinates,
    • points have 1 in last position
    • vectors have 0 in last position
  • Arithmetics
    • Point + Point is undefined
    • Vector + Vector is a Vector
    • Point + Vector is a Point

Rotation

Let \(R\) be a \(3\times3\) rotation matrix.

\[ R\cdot\vec{x}= R \cdot \begin{bmatrix} x\\y\\z \end{bmatrix} = \begin{bmatrix} x'\\y'\\z' \end{bmatrix} \]

\[ \begin{bmatrix} R & 0 \\ 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} x\\y\\z\\1 \end{bmatrix} = \begin{bmatrix} x'\\y'\\z'\\1 \end{bmatrix} \]

Arbitrary motion

What happens if we change some of the zeroes?

\[ \begin{bmatrix} R & \vec{t} \\ 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} x\\y\\z\\1 \end{bmatrix} = \begin{bmatrix} x'\\y'\\z'\\0 \end{bmatrix} + \begin{bmatrix} \vec{t}\\1 \end{bmatrix} =R\vec{x}+\vec{t} \]

We have rotated and translated!

The group structure

\[ g = \begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix} \in \mathrm{SE}(3) \]

  • This is a group
    • motions can be applied sequentially

\[g_1\cdot g_2 = \begin{bmatrix} R_1 & T_1\\ 0 & 1 \end{bmatrix}\cdot \begin{bmatrix} R_2 & T_2\\ 0 & 1 \end{bmatrix} = \begin{bmatrix} R_1R_2 & R_1T_2+T_1\\ 0 & 1 \end{bmatrix} \in \mathrm{SE}(3) \]

\[g^{-1} = \begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix}^{-1} = \begin{bmatrix} R^T & -R^TT\\ 0 & 1 \end{bmatrix} \]

Motion as a function of time

  1. A homogeneous motion matrix as a function of time \(t\) \[ g(t) = \begin{bmatrix} R(t) & T(t)\\ 0 & 1 \end{bmatrix} \]
  2. We can differentiate, invert, and multiply to get \[ \dot g(t)\cdot g^{-1}(t) = \begin{bmatrix} \dot R(t) R^T(t) & \dot T(t)- \dot R(t)R^T(t)T(t) \\ 0 & 0 \end{bmatrix} \in\mathbb{R}^{4\times4} \]
  3. \(\dot R(t) R^T(t)\) is skew-symmetric as we saw in Representations of 3D Motion, hence \[ \dot g(t)\cdot g^{-1}(t) = \begin{bmatrix} \hat\omega & \dot T(t)- \dot R(t)R^T(t)T(t) \\ 0 & 0 \end{bmatrix} \] for some \(\omega\in\mathrm{so}(3)\)
    • This can be seen by differentiation \(R(t)R^TR(t)=I\)
  4. Write \[ \begin{align} \dot v(t)= \dot T(t)- \hat\omega(t)T(t) \\ \dot g(t)\cdot g^{-1}(t) = \begin{bmatrix} \hat\omega & \dot v \\ 0 & 0 \end{bmatrix} \end{align} \]
  5. Call this matrix \(\hat\xi(t)\)
    • i.e. $(t) =g(t)g^{-1}(t) $
    • \(\hat\xi\) is the tangent vector along \(g(t)\)
    • the \(4\times4\) matrix corresponding \(\hat\xi\) is called a twist
    • set of all twists is called \(se(3)\); the tangent space or Lie group of \(SE(3)\)
  6. This give the differential equation \[\dot g(t) = \hat\xi\cdot g(t)\]
  7. If \(\hat\xi\) is constant, we can integrate to solve the ODE \[g(t) = e^{\hat\xi t}g(0)\]
    • we typically assume \(g(0)=I\) as the initial condition
  • \(v(t)\) is linear velocity
  • \(\omega(t)\) as angular velocity