3D Transformations

http://planning.cs.uiuc.edu/node101.html

http://planning.cs.uiuc.edu/node102.html

3D translation

The robot, $ {\cal A}$, is translated by some $ x_t,y_t,z_t\in {\mathbb{R}}$ using

$\displaystyle (x,y,z) \mapsto (x+x_t, y+y_t, z+z_t).$ (3.36)

A primitive of the form

$\displaystyle H_i = \{ (x,y,z) \in {\cal W}\;\vert\; f_i(x,y,z) \leq 0 \}$ (3.37)

is transformed to

$\displaystyle \{ (x,y,z) \in {\cal W}\;\vert\; f_i(x-x_t,y-y_t,z-z_t) \leq 0 \}.$ (3.38)

The translated robot is denoted as $ {\cal A}(x_t,y_t,z_t)$.

Figure 3.8: Any three-dimensional rotation can be described as a sequence of yaw, pitch, and roll rotations.
3D Transformations_第1张图片

A 3D body can be rotated about three orthogonal axes, as shown in Figure 3.8. Borrowing aviation terminology, these rotations will be referred to as yaw, pitch, and roll:

  1. A yaw is a counterclockwise rotation of $ \alpha$ about the $ z$-axis. The rotation matrix is given by

    $\displaystyle R_z(\alpha) = \begin{pmatrix}\cos\alpha & -\sin\alpha & 0  \sin\alpha & \cos\alpha & 0  0 & 0 & 1  \end{pmatrix} .$ (3.39)

    Note that the upper left entries of $ R_z(\alpha)$ form a 2D rotation applied to the $ x$ and $ y$ coordinates, whereas the $ z$ coordinate remains constant.

  2. A pitch is a counterclockwise rotation of $ \beta$ about the $ y$-axis. The rotation matrix is given by

    $\displaystyle R_y(\beta) = \begin{pmatrix}\cos\beta & 0 & \sin\beta  0 & 1 & 0  -\sin\beta & 0 & \cos\beta  \end{pmatrix} .$ (3.40)

  3. A roll is a counterclockwise rotation of $ \gamma$ about the $ x$-axis. The rotation matrix is given by

    $\displaystyle R_x(\gamma) = \begin{pmatrix}1 & 0 & 0  0 & \cos\gamma & -\sin\gamma  0 & \sin\gamma & \cos\gamma  \end{pmatrix} .$ (3.41)

Each rotation matrix is a simple extension of the 2D rotation matrix, ( 3.31). For example, the yaw matrix, $ R_z(\alpha)$, essentially performs a 2D rotation with respect to the $ x$ and $ y$ coordinates while leaving the $ z$ coordinate unchanged. Thus, the third row and third column of $ R_z(\alpha)$ look like part of the identity matrix, while the upper right portion of $ R_z(\alpha)$ looks like the 2D rotation matrix.

The yaw, pitch, and roll rotations can be used to place a 3D body in any orientation. A single rotation matrix can be formed by multiplying the yaw, pitch, and roll rotation matrices to obtain

\begin{displaymath}\begin{split}R(\alpha,& \beta,\gamma) = R_z(\alpha)   R_y(\b......\sin\gamma & \cos\beta \cos\gamma  \end{pmatrix}. \end{split}\end{displaymath} (3.42)

It is important to note that $ R(\alpha,\beta,\gamma)$ performs the roll first, then the pitch, and finally the yaw. If the order of these operations is changed, a different rotation matrix would result. Be careful when interpreting the rotations. Consider the final rotation, a yaw by $ \alpha$. Imagine sitting inside of a robot $ {\cal A}$ that looks like an aircraft. If $ \beta = \gamma = 0$, then the yaw turns the plane in a way that feels like turning a car to the left. However, for arbitrary values of $ \beta$ and $ \gamma$, the final rotation axis will not be vertically aligned with the aircraft because the aircraft is left in an unusual orientation before $ \alpha$ is applied. The yaw rotation occurs about the $ z$-axis of the world frame, not the body frame of $ {\cal A}$. Each time a new rotation matrix is introduced from the left, it has no concern for original body frame of $ {\cal A}$. It simply rotates every point in $ {\mathbb{R}}^3$ in terms of the world frame. Note that 3D rotations depend on three parameters, $ \alpha$, $ \beta$, and $ \gamma$, whereas 2D rotations depend only on a single parameter, $ \theta $. The primitives of the model can be transformed using $ R(\alpha,\beta,\gamma)$, resulting in $ {\cal A}(\alpha,\beta,\gamma)$



你可能感兴趣的:(3D Transformations)