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
- Rotation is represented by an orthogonal matrix \(R\) \[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.
The differential equation
Let \(x(t)\) be a point rotated over time.
Assume that \(\omega\) is constant.
- ODE: \[\dot x(t) = \hat\omega x(t), \quad x(t)\in\mathbb{R}^3\]
- Solution: \[x(t) = e^{\hat\omega t} x(0)\]
- where \[e^{\hat\omega t} = I + \sum_{i=1}^\infty \frac{(\hat\omega )^i}{i!}\]
- 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!