3D Transformations

来源:互联网 发布:网络分离器哪个牌子好 编辑:程序博客网 时间:2024/06/07 05:05

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

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

3D translation

The robot, $ {\cal A}$, istranslated 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.\begin{figure}\centerline{\psfig{file=figs/yawpitchroll.eps,width=1.7in}}\end{figure}

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)$



0 0