--- title: 3D Motion categories: lecture geometry: margin=2cm fontsize: 12pt --- This is a recap of two previous talks + [Change of Basis]() from [3D Modelling]() + [Representations of 3D Motion]() from [3D Objects in Python]() # 3D Motion ## Rigid Body Motion + an object $O$ is a set of points $O\subset\mathbb{R}^3$ + Movement (or **displacement**) is a map $g:\mathbb{R}^3\to\mathbb{R}^3$ acting on all points in $O$. + Motion is a displacement $g(t)$ for every point $t$ in time - $g(t): \mathbb{R}^3\to\mathbb{R}^3; \mathbf{X}\mapsto g(t)(\mathbf{X})$ ## Euclidean Transformation + A rigid body does not change shape when it moves. + In particular, the distance between two points does not change $$|| \mathbf{X} - \mathbf{Y} || = ||g(\mathbf{X})-g(\mathbf{Y})||$$ If this identity is satisfied for all points $\mathbf{X},\mathbf{Y}$, we have a **Euclidean Transformation** and write $g\in E(3)$ The map $g$ induces a map $g_*$ on free vectors, $$g_*(v) = g(\mathbf{X}) - g(\mathbf{Y})\quad\text{where}\quad v = \mathbf{X}) -\mathbf{Y})$$ ## Special Euclidean Transformation + Consider mirroring: $[X_1,X_2,X_3]\mapsto[X_1,X_2,-X_3]$ + Euclidean transformation, but not a rigid body displacement + Rigid body motion preserves orientation, i.e. + For three points $\mathbf{X},\mathbf{Y},\mathbf{Z}$ + define vectors $u=\mathbf{Y}-\mathbf{X}$ and $v=\mathbf{Z}-\mathbf{X}$ + To preserve orientation we preserve the cross product $$g_*(u)\times g_*(v) = g_*(u\times v),\quad\forall u,v\in\mathbb{R}^3$$ ## Summary A **Special Euclidean Transformation** $g\in SE(3)$ satisfies $$\langle u,v\rangle = \langle g_*(u),g_*(v)\rangle$$ $$g_*(u)\times g_*(v) = g_*(u\times v),\quad\forall u,v\in\mathbb{R}^3$$ ## Translation + Vectors act on points $$v: x \mapsto x+v$$ $$[x_1,x_2,x_3]^\mathrm{T} + [v_1,v_2,v_3]^\mathrm{T} = [x_1+v_1,x_2+v_2,x_3+v_3]^\mathrm{T}$$ + The vector defines a **translation** + Translate object by translating every point in the object # Rotation ## Rotational Matrix + The Rotational Matrix is orthogonal: $R(t)\cdot R^\mathrm{T}(t)=I$ + Differentiation gives $$\dot R(t)R\mathrm{T}(t) + R(t)\dot R^\mathrm{T}=0 \Longrightarrow \dot R(t)R\mathrm{T}(t) = -(\dot R(t) R^\mathrm{T})^\mathrm{T} $$ + I.e. skew-symmetric $\dot R(t) = \hat\omega(t)R(t)$ for some $\omega$ + This gives a first-order approximation $R(t_0+dt)\approx I + \hat\omega(t_0)dt$ ## Matrix Exponential ODE: $\dot x(t) = \hat\omega x(t)$ $$x(t) = e^{\hat\omega t}x(0)$$ $$e^{\hat\omega t} = I + \hat\omega t + \frac{(\hat\omega t)^2}{2!} + \cdots \frac{(\hat\omega t)^n}{n!} + \cdots$$ + Assume $||\omega||=1$. $R(t)=e^{\hat\omega t}$ rotates by $t$ radians around the axis $\omega$ # Additional material ## Velocity Transformations **Adjoint Map** $\mathrm{ad}_g: \mathrm{se}(3)\to\mathrm{se}(3);\quad \hat\xi\mapsto g\hat\xi g^{-1}$