Revision 3db3e180e6b69a31ac797a244824b1fd4c5ecb5e (click the page title to view the current version)

Representations of 3D Motion

Representation of Rotations

Consider what happens when an object rotates continuously over time, i.e. the rotational matrix is a function \(R(t)\) of time.

The derivative

  1. Rotation is represented by an orthogonal matrix \(R\) \[R(t)\cdot R^T(t)=I\]
  2. Implicit derivation \[\dot R(t)\cdot R^T(t)+R(t)\cdot\dot R^T(t)=I\]
  3. by transposing the product and moving one term across, we have \[\dot R(t)\cdot R^T(t) = -(\dot R(t)\cdot R^T(t))^T\]
  4. This is a skew-symmetric matrix, hence \[\exists \vec{\omega}\in\mathbb{R}^3, \text{s.t.} \dot R^T(t)\cdot R^T(t) = \hat\omega(t)\]
  5. Multiply by \(R(t)\) to get \[\dot R^T(t) = \hat\omega(t)\cdot R(t)\]
  6. If \(R(t_0)=I\) as an initial condition, then \(\dot R(t)=\hat\omega(t)\)

Note \(so(3)\) is the space of all skew-symmetric matrices.

The differential equation

Let \(x(t)\) be a point rotated over time.

Assume that \(\omega\) is constant.

  1. ODE: \[\dot x(t) = \hat\omega x(t), \quad x(t)\in\mathbb{R}^3\]
  2. Solution: \[x(t) = e^{\hat\omega t} x(0)\]
  3. where \[e^{\hat\omega t} = I + \sum_{i=1}^\infty \frac{(\hat\omega )^i}{i!}\]
  4. The rotational matrix \[R(t)=e^{\hat\omega t}\] signifies a rotation around the axis \(\omega\) by \(t\) radians.

\[\exp : \mathrm{so}(3)\to\mathrm{SO}(3); \hat\omega\mapsto e^{\hat\omega}\]

This is a map from a Lie algebra to a Lie group.

For any \(R\), such an \(\hat\omega\) can be found, not necessarily unique.

Rotation is obviously periodic. A rotation by \(2\pi\) is back to start.

Note Only three degrees of freedom.

Homogenous Co-ordinates

Six degrees of Freedom

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

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\cot\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!