Rotation

The robot, $ {\cal A}$, can be rotated counterclockwise by some angle $ \theta \in [0,2 \pi)$ by mapping every $ (x,y) \in {\cal A}$ as

$\displaystyle (x,y) \mapsto (x \cos\theta - y \sin\theta,\; x \sin\theta + y \cos\theta) .$ (3.30)

Using a $ 2 \times 2$ rotation matrix,

$\displaystyle R(\theta) = \begin{pmatrix}\cos\theta & -\sin\theta  \sin\theta & \cos\theta  \end{pmatrix},$ (3.31)

the transformation can be written as

$\displaystyle \begin{pmatrix}x \cos\theta - y \sin\theta  x \sin\theta + y \cos\theta  \end{pmatrix} = R(\theta) \begin{pmatrix}x  y  \end{pmatrix}.$ (3.32)

Using the notation of Section 3.2.1, $ R(\theta)$ becomes $ h(q)$, for which $ q = \theta$. For linear transformations, such as the one defined by (3.32), recall that the column vectors represent the basis vectors of the new coordinate frame. The column vectors of $ R(\theta)$ are unit vectors, and their inner product (or dot product) is zero, indicating that they are orthogonal. Suppose that the $ x$ and $ y$ coordinate axes, which represent the body frame, are ``painted'' on $ {\cal A}$. The columns of $ R(\theta)$ can be derived by considering the resulting directions of the $ x$- and $ y$-axes, respectively, after performing a counterclockwise rotation by the angle $ \theta $. This interpretation generalizes nicely for higher dimensional rotation matrices.

Note that the rotation is performed about the origin. Thus, when defining the model of $ {\cal A}$, the origin should be placed at the intended axis of rotation. Using the semi-algebraic model, the entire robot model can be rotated by transforming each primitive, yielding $ {\cal A}(\theta)$. The inverse rotation, $ R(-\theta)$, must be applied to each primitive.

Steven M LaValle 2020-08-14