作者Assassin81 (R00M335)
看板Mechanical
标题Re: [请益] 空间的旋转矩阵(尤拉转换)
时间Mon Aug 10 22:22:41 2009
※ 引述《GOGUEST (有点空虚的大猫)》之铭言:
: 谢谢板上各位版大的解惑~~
: 想再请问版上的各位
: 有没有推荐有关於空间中尤拉角的书籍阿
: 因为我对尤拉角转换 xyz zyx yzx xzy ...... xyx ......
: 等12种的尤拉转换方式不太懂它们各自的物理意义@@"
: (只知道xyz是先绕x轴旋转、再绕y轴最後再绕z轴,其他依此类推,但是xyx的意义呢? )
: 找了很多paper~~
: 大都只是简单叙述有这12种方法而已
: 图书馆也找不太到类似的书籍(还是我找错方向= =")
: 也都搜寻不到有关於这方面的知识
: 想请问各位版大能不能指引一些方向
: 让我去参考一下
: 谢谢^^"
打euler angle的关键字在网路上搜寻,就可以搜寻到许多相关的文章和解释,
wiki:
http://en.wikipedia.org/wiki/Euler_angles
http://chsfpc5.chem.ncsu.edu/~franzen/CH795Z/math/lab_frame/lab_frame.html
http://mathworld.wolfram.com/EulerAngles.html
http://ozviz.wasp.uwa.edu.au/~pbourke/geometry/eulerangle/
参考书的话,Thornton & Marion 的 classical dynamics 和
Goldstein 的 Classical mechanics都有euler angle的解释。
如果懒的看英文的话,可以参考小弟下面简易的说明。
参考座标系可以经由绕着不同的座标轴旋转後,变成新的座标系,每次座标轴旋转的
角度就是尤拉角。举例来说,xyx表示依序绕x、y、x轴旋转,其中两个x代表的x轴并
不是一样的,第二个x是经过绕y轴旋转後的新x轴,第一个则是一开始的x轴,其他以
此类推。
ps.要有图比较好理解,上面的网站就有相关的示意图
先把绕着x或y或z轴的旋转矩阵写出,再看是绕着哪一个轴转,乘以相对应的旋转矩阵
就可以得出经过整个尤拉角转换後的转换矩阵:
◎以xyz为例:
设原本的座标为[r],为3x1之矩阵,经尤拉角转换後的座标为[r'],
尤拉角转换矩阵为[Te]
[r']=[Te][r]------(1)
绕x、y、z轴旋转的角度和旋转矩阵各为α、[Tx],β、[Ty],γ、[Tz],
依照绕的顺序,[r']可用下面的式子来表示,
[r']=[Tz][Ty][Tx][r]------(2)
比较(1)(2)式可得
[Te]=[Tz][Ty][Tx]------(3)
[Tz]、[Ty]、[Tx]如下:
z轴:
┌ ┐
│ cosγ sinγ 0 │
[Tz]=│-sinγ cosγ 0 │
│ 0 0 1 │
└ ┘
y轴:
┌ ┐
│ cosβ 0 -sinβ │
[Ty]=│ 0 1 0 │
│ sinβ 0 cosβ │
└ ┘
x轴:
┌ ┐
│ 1 0 0 │
[Tx]=│ 0 cosα sinα│
│ 0 -sinα cosα│
└ ┘
[Tz]、[Ty]、[Tx]代入(3)後可得[Te]如下,
┌ ┐
│ cosγcosβ sinγcosα+cosγsinβsinα sinγsinα-cosγsinβcosα│
[Te]=│-sinγcosβ cosγcosα-sinγsinβsinα cosγsinα+sinγsinβcosα│
│ sinβ cosβsinα cosβcosα │
└ ┘
仿照上面的程序就可以得出其他如xzx,yzx....等尤拉角转换方式的转换矩阵
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.142.86
1F:推 GOGUEST:谢谢你的详细解说^^" 08/10 22:38
2F:→ GOGUEST:你说的这些我在很多文献上都有看过了~~ 08/10 22:39
3F:→ GOGUEST:我现在比较有疑惑的是这12种尤拉转换有甚麽相异处? 08/10 22:41
4F:→ GOGUEST:我的意思是我知道尤拉转换的组成运算原理 08/10 22:42
5F:推 GOGUEST:但是为什麽XYZ和ZYX代公式求解得出的角度会有一些的差距 08/10 22:46
6F:推 GOGUEST:这些差异的因素到底是怎麽发生的? 08/10 22:49
7F:→ Assassin81:差距的意思是指?? 08/10 22:50
8F:→ GOGUEST:因为做专题~~偶然发现这个问题~~结果发现好像没有人在探讨 08/10 22:50
9F:→ GOGUEST:就是利用这12种尤拉转换导出的角度不会都完全一样 08/10 22:52
10F:→ GOGUEST:有的甚至差很多~~所以才觉得奇怪 08/10 22:53
11F:→ Assassin81:你的意思是说,对同样的新旧座标系,尤拉转换方式不同 08/10 22:57
12F:→ Assassin81:所对应的尤拉角就不同? 08/10 22:58
13F:推 GOGUEST:意思应该差不多~~我们用同样的DATA~~利用自己写的Matlab 08/10 23:09
14F:→ GOGUEST:程式去算角度~~每个尤拉角度算出来的都不会相同 08/10 23:10
15F:推 MiyaKami:本来就不会一样吧?有限大小的角位移不是向量叠加不会相同 08/10 23:21
16F:推 alamabarry:相异处????...不就方法不同而已...怎麽转怎麽切的定义 08/10 23:22
17F:推 pk007:定义不一样,角度会一样才奇怪.验证最後的4*4矩阵是一样就好! 08/10 23:44
18F:推 GOGUEST:喔喔~~我是想说有没有什麽互相规则的@@" 08/11 00:40
19F:→ GOGUEST:因为这样我要怎麽选择哪一个转换才是最符和现实中的角度? 08/11 00:41
20F:→ Assassin81:用最少的旋转度数或次数达到一样的位置吗? 08/11 01:05
21F:推 GOGUEST:应该是说~假设我要算手腕的旋转范围~~我分别在手肘和手掌 08/11 01:43
22F:→ GOGUEST:都各定义一个空间座标~~然後用尤拉转换求角度 08/11 01:44
23F:→ GOGUEST:这样我怎麽知道哪一个尤拉转换所求的角度更贴近实际范围? 08/11 01:45
24F:推 pk007:那一套都可以!那有分贴不贴近实际角度!每套都是对的! 08/11 02:07
25F:→ pk007:也没有说用那一套可以用最少的旋转度数或次数达到一样的位置 08/11 02:09
26F:→ pk007:尤拉角拿来干麻的? 想清楚用途! 不要太多天马行空的想法 08/11 02:12
27F:→ pk007:只须搞懂定义跟用途就好! 08/11 02:12
28F:推 zetatmrptt:你如果是要搞定手腕这个case 看看ISB制定的规则 08/11 02:54
29F:推 alamabarry:要知道旋转怎麽算~~就要有张量的概念 08/11 03:48
30F:→ alamabarry:至於怎麽定义~~简单说就是排列组合... 08/11 03:49
31F:推 pk007:他定义跟排列组合没关系. 08/11 11:20
32F:推 miniyogo:不知道我这样讲对不对...可是尤拉角不就是定义三次旋转能 08/11 11:52
33F:→ miniyogo:达到所需要的座标位置从正向XYZ座标开始,所以不管怎样变 08/11 11:53
34F:→ miniyogo:换XYZ的排列方法,都是依照最原始的三次旋转来做运动 08/11 11:53
35F:→ miniyogo:所以得出的最终相对座标会是一样的,不是这样吗?? 08/11 11:54
36F:→ miniyogo:只是他排列方式不同,三次旋转的顺序会不同 08/11 11:55
37F:推 pk007:不是,并不是依最原始的三次旋转来做运动,有的是,有的不是, 08/11 12:51
38F:→ pk007:就说每套的定义都不同,有的是对旋转後的座标系再做转换. 08/11 12:52
39F:推 pk007:有的是一直对原座标系做转换. 08/11 12:55
40F:→ Assassin81:G大是指因为人的手肘和手掌有先天的转动角度限制 所以 08/11 18:43
41F:→ Assassin81:想要找个适合的尤拉转换使得旋转的角度不会超出限制吧 08/11 18:45
42F:→ Assassin81:机械手的关节不知是否也有这样的问题 08/11 18:47
43F:推 alamabarry:他定义跟排列组合没关系?...你真的懂尤拉角吗 08/11 19:39
44F:推 pk007:肯定没关系. 08/11 19:42
45F:推 alamabarry:xyz yzx请问这是排列组合吗? 08/11 19:44
46F:推 pk007:把排列组合用在这说明尤拉角! 重点是在这吗? 08/11 19:55
47F:→ pk007:那只是最後下的一个结论.挖!原来有这摸多种组合喔! 08/11 19:56
48F:推 alamabarry:原来重点不在这就可以解释为跟排列组合无关 厉害 08/12 05:43
49F:推 alamabarry:还可以说成肯定没关系...12种又是怎麽来的 08/12 05:47
50F:推 alamabarry:还有我不知道你是几维度的空间4*4矩阵请问是哪一个 08/12 05:57
51F:→ alamabarry:另外就你说得转原座标或是变动座标..依你的'定义' 08/12 05:58
52F:→ alamabarry:是不都是12种..这我就不要求你不要用排列组合算了 08/12 05:59
53F:→ alamabarry:即使你都说跟排列组合肯定没关系了 08/12 06:00
54F:推 alamabarry:还有别乱扣帽子 尤拉角不是什麽难的东西 08/12 06:06
55F:→ alamabarry:我要说明的是为何有12种定义..你会有这种质疑 08/12 06:06
56F:推 alamabarry:跟误解 我还挺意外的 08/12 06:11
57F:推 pk007:^^! 08/12 10:22
58F:推 knon060718: 这篇写错啦啦啦啦啦 04/09 16:54
59F:→ knon060718: x-y-z尤拉角的转换矩阵是[Tx][Ty][Tz]才对 04/09 16:56
60F:→ knon060718: [Tz][Ty][Tx]变成是对固定座标系旋转了 04/09 16:57