Revision f0c4ca5be7f95647f943ac30e563d35b1873737a (click the page title to view the current version)
Representations of 3D Motion
Representation of Rotations
- Rotation is represented by an orthogonal matrix \(R\)
- Consider rotation over time, i.e. the rotational matrix is a function \(R(t)\) of time. \[R(t)\cdot R^T(t)=I\]
- Implicit derivation \[\dot R(t)\cdot R^T(t)+R(t)\cdot\dot R^T(t)=I\]
- 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\]
- 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)\]
- Multiply by \(R(t)\) to get \[\dot R^T(t) = \hat\omega(t)\cdot R(t)\]
- 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.
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!