Revision fe6563e0c05434f1fd48e125339506ff130f63c1 (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}\]

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.

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!