3D Transformations
2015-09-11 10:40
381 查看
http://planning.cs.uiuc.edu/node101.html
http://planning.cs.uiuc.edu/node102.html
![](http://planning.cs.uiuc.edu/img54.gif)
, is
translated by some
![](http://planning.cs.uiuc.edu/img809.gif)
using
A primitive of the form
is transformed to
The translated robot is denoted as
![](http://planning.cs.uiuc.edu/img813.gif)
.
Figure 3.8: Any three-dimensional rotation can be described as a sequence of yaw, pitch, and roll rotations.
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:
A yaw is a counterclockwise rotation of
![](http://planning.cs.uiuc.edu/img815.gif)
about the
![](http://planning.cs.uiuc.edu/img704.gif)
-axis. The rotation matrix is given by
Note that the upper left entries of
![](http://planning.cs.uiuc.edu/img817.gif)
form a 2D rotation applied to the
![](http://planning.cs.uiuc.edu/img86.gif)
and
![](http://planning.cs.uiuc.edu/img166.gif)
coordinates, whereas the
![](http://planning.cs.uiuc.edu/img704.gif)
coordinate remains constant.
A pitch is a counterclockwise rotation of
![](http://planning.cs.uiuc.edu/img818.gif)
about the
![](http://planning.cs.uiuc.edu/img166.gif)
-axis. The rotation matrix is given by
A roll is a counterclockwise rotation of
![](http://planning.cs.uiuc.edu/img820.gif)
about the
![](http://planning.cs.uiuc.edu/img86.gif)
-axis. The rotation matrix is given by
Each rotation matrix is a simple extension of the 2D rotation matrix, (3.31). For example, the yaw matrix,
![](http://planning.cs.uiuc.edu/img817.gif)
, essentially performs a 2D rotation with respect to the
![](http://planning.cs.uiuc.edu/img86.gif)
and
![](http://planning.cs.uiuc.edu/img166.gif)
coordinates while leaving the
![](http://planning.cs.uiuc.edu/img704.gif)
coordinate unchanged. Thus, the third row and third column of
![](http://planning.cs.uiuc.edu/img817.gif)
look like part of the identity matrix, while the upper right portion of
![](http://planning.cs.uiuc.edu/img817.gif)
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
It is important to note that
![](http://planning.cs.uiuc.edu/img823.gif)
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
![](http://planning.cs.uiuc.edu/img815.gif)
. Imagine sitting inside of a robot
![](http://planning.cs.uiuc.edu/img54.gif)
that looks like an aircraft. If
![](http://planning.cs.uiuc.edu/img824.gif)
, then the yaw turns the plane in a way that feels like turning a car to the left. However, for arbitrary
values of
![](http://planning.cs.uiuc.edu/img818.gif)
and
![](http://planning.cs.uiuc.edu/img820.gif)
, the final rotation axis will not be vertically aligned with the aircraft because the aircraft is left in an unusual
orientation before
![](http://planning.cs.uiuc.edu/img815.gif)
is applied. The yaw rotation occurs about the
![](http://planning.cs.uiuc.edu/img704.gif)
-axis of the world frame, not the body frame of
![](http://planning.cs.uiuc.edu/img54.gif)
. Each time a new rotation matrix is introduced from the left, it has no concern for original body frame of
![](http://planning.cs.uiuc.edu/img54.gif)
. It simply rotates every point in
![](http://planning.cs.uiuc.edu/img23.gif)
in terms of the world frame. Note that 3D rotations depend on three parameters,
![](http://planning.cs.uiuc.edu/img815.gif)
,
![](http://planning.cs.uiuc.edu/img818.gif)
, and
![](http://planning.cs.uiuc.edu/img820.gif)
, whereas 2D rotations depend only on a single parameter,
![](http://planning.cs.uiuc.edu/img47.gif)
. The primitives of the model can be transformed using
![](http://planning.cs.uiuc.edu/img823.gif)
, resulting in
![](http://planning.cs.uiuc.edu/img825.gif)
.
http://planning.cs.uiuc.edu/node102.html
3D translation
The robot,![](http://planning.cs.uiuc.edu/img54.gif)
, is
translated by some
![](http://planning.cs.uiuc.edu/img809.gif)
using
![]() | (3.36) |
![]() | (3.37) |
![]() | (3.38) |
![](http://planning.cs.uiuc.edu/img813.gif)
.
![]() |
3.8. Borrowing aviation terminology, these rotations will be referred to as yaw, pitch, and roll:
A yaw is a counterclockwise rotation of
![](http://planning.cs.uiuc.edu/img815.gif)
about the
![](http://planning.cs.uiuc.edu/img704.gif)
-axis. The rotation matrix is given by
![]() | (3.39) |
![](http://planning.cs.uiuc.edu/img817.gif)
form a 2D rotation applied to the
![](http://planning.cs.uiuc.edu/img86.gif)
and
![](http://planning.cs.uiuc.edu/img166.gif)
coordinates, whereas the
![](http://planning.cs.uiuc.edu/img704.gif)
coordinate remains constant.
A pitch is a counterclockwise rotation of
![](http://planning.cs.uiuc.edu/img818.gif)
about the
![](http://planning.cs.uiuc.edu/img166.gif)
-axis. The rotation matrix is given by
![]() | (3.40) |
![](http://planning.cs.uiuc.edu/img820.gif)
about the
![](http://planning.cs.uiuc.edu/img86.gif)
-axis. The rotation matrix is given by
![]() | (3.41) |
![](http://planning.cs.uiuc.edu/img817.gif)
, essentially performs a 2D rotation with respect to the
![](http://planning.cs.uiuc.edu/img86.gif)
and
![](http://planning.cs.uiuc.edu/img166.gif)
coordinates while leaving the
![](http://planning.cs.uiuc.edu/img704.gif)
coordinate unchanged. Thus, the third row and third column of
![](http://planning.cs.uiuc.edu/img817.gif)
look like part of the identity matrix, while the upper right portion of
![](http://planning.cs.uiuc.edu/img817.gif)
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
![]() | (3.42) |
![](http://planning.cs.uiuc.edu/img823.gif)
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
![](http://planning.cs.uiuc.edu/img815.gif)
. Imagine sitting inside of a robot
![](http://planning.cs.uiuc.edu/img54.gif)
that looks like an aircraft. If
![](http://planning.cs.uiuc.edu/img824.gif)
, then the yaw turns the plane in a way that feels like turning a car to the left. However, for arbitrary
values of
![](http://planning.cs.uiuc.edu/img818.gif)
and
![](http://planning.cs.uiuc.edu/img820.gif)
, the final rotation axis will not be vertically aligned with the aircraft because the aircraft is left in an unusual
orientation before
![](http://planning.cs.uiuc.edu/img815.gif)
is applied. The yaw rotation occurs about the
![](http://planning.cs.uiuc.edu/img704.gif)
-axis of the world frame, not the body frame of
![](http://planning.cs.uiuc.edu/img54.gif)
. Each time a new rotation matrix is introduced from the left, it has no concern for original body frame of
![](http://planning.cs.uiuc.edu/img54.gif)
. It simply rotates every point in
![](http://planning.cs.uiuc.edu/img23.gif)
in terms of the world frame. Note that 3D rotations depend on three parameters,
![](http://planning.cs.uiuc.edu/img815.gif)
,
![](http://planning.cs.uiuc.edu/img818.gif)
, and
![](http://planning.cs.uiuc.edu/img820.gif)
, whereas 2D rotations depend only on a single parameter,
![](http://planning.cs.uiuc.edu/img47.gif)
. The primitives of the model can be transformed using
![](http://planning.cs.uiuc.edu/img823.gif)
, resulting in
![](http://planning.cs.uiuc.edu/img825.gif)
.
相关文章推荐
- 关于javascript中apply()和call()方法的区别
- 使用函数累加数组内数值的和
- HDR和toneMapping
- WebService 理解
- (Google)TextView属性大全(API-16)
- codeforces 251A Points on Line(二分or单调队列)
- 初识App Inventor 2(AI2)
- DBCP连接池
- STL中的set容器的一点总结
- iOS Https
- Java 多线程同步的五种方法
- 修改浏览器的User-Agent来伪装你的浏览器和操作系统
- 【算法】在整数数组求中出两两之差绝对值最小的值
- 关于区别docuemnt.write()和document.getELementById().innerHTML=""
- 【linq to sql学习笔记】增、删、改
- LeetCode 1 Two Sum
- HashMap,LinkedHashMap,TreeMap的区别(转)
- jquery中的ajax异步上传
- IC卡、ID卡及车库蓝牙卡的复制说明!(小区的门禁系统)
- 类和类之间属性复制,必须存在get和set方法的属性才可以复制