Re: [請益] 空間的旋轉矩陣(尤拉轉換)

看板Mechanical作者 (R00M335)時間15年前 (2009/08/10 22:22), 編輯推噓27(27033)
留言60則, 8人參與, 最新討論串3/3 (看更多)
※ 引述《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

08/10 22:38, , 1F
謝謝你的詳細解說^^"
08/10 22:38, 1F

08/10 22:39, , 2F
你說的這些我在很多文獻上都有看過了~~
08/10 22:39, 2F

08/10 22:41, , 3F
我現在比較有疑惑的是這12種尤拉轉換有甚麼相異處?
08/10 22:41, 3F

08/10 22:42, , 4F
我的意思是我知道尤拉轉換的組成運算原理
08/10 22:42, 4F

08/10 22:46, , 5F
但是為什麼XYZ和ZYX代公式求解得出的角度會有一些的差距
08/10 22:46, 5F

08/10 22:49, , 6F
這些差異的因素到底是怎麼發生的?
08/10 22:49, 6F

08/10 22:50, , 7F
差距的意思是指??
08/10 22:50, 7F

08/10 22:50, , 8F
因為做專題~~偶然發現這個問題~~結果發現好像沒有人在探討
08/10 22:50, 8F

08/10 22:52, , 9F
就是利用這12種尤拉轉換導出的角度不會都完全一樣
08/10 22:52, 9F

08/10 22:53, , 10F
有的甚至差很多~~所以才覺得奇怪
08/10 22:53, 10F

08/10 22:57, , 11F
你的意思是說,對同樣的新舊座標系,尤拉轉換方式不同
08/10 22:57, 11F

08/10 22:58, , 12F
所對應的尤拉角就不同?
08/10 22:58, 12F

08/10 23:09, , 13F
意思應該差不多~~我們用同樣的DATA~~利用自己寫的Matlab
08/10 23:09, 13F

08/10 23:10, , 14F
程式去算角度~~每個尤拉角度算出來的都不會相同
08/10 23:10, 14F

08/10 23:21, , 15F
本來就不會一樣吧?有限大小的角位移不是向量疊加不會相同
08/10 23:21, 15F

08/10 23:22, , 16F
相異處????...不就方法不同而已...怎麼轉怎麼切的定義
08/10 23:22, 16F

08/10 23:44, , 17F
定義不一樣,角度會一樣才奇怪.驗證最後的4*4矩陣是一樣就好!
08/10 23:44, 17F

08/11 00:40, , 18F
喔喔~~我是想說有沒有什麼互相規則的@@"
08/11 00:40, 18F

08/11 00:41, , 19F
因為這樣我要怎麼選擇哪一個轉換才是最符和現實中的角度?
08/11 00:41, 19F

08/11 01:05, , 20F
用最少的旋轉度數或次數達到一樣的位置嗎?
08/11 01:05, 20F

08/11 01:43, , 21F
應該是說~假設我要算手腕的旋轉範圍~~我分別在手肘和手掌
08/11 01:43, 21F

08/11 01:44, , 22F
都各定義一個空間座標~~然後用尤拉轉換求角度
08/11 01:44, 22F

08/11 01:45, , 23F
這樣我怎麼知道哪一個尤拉轉換所求的角度更貼近實際範圍?
08/11 01:45, 23F

08/11 02:07, , 24F
那一套都可以!那有分貼不貼近實際角度!每套都是對的!
08/11 02:07, 24F

08/11 02:09, , 25F
也沒有說用那一套可以用最少的旋轉度數或次數達到一樣的位置
08/11 02:09, 25F

08/11 02:12, , 26F
尤拉角拿來幹麻的? 想清楚用途! 不要太多天馬行空的想法
08/11 02:12, 26F

08/11 02:12, , 27F
只須搞懂定義跟用途就好!
08/11 02:12, 27F

08/11 02:54, , 28F
你如果是要搞定手腕這個case 看看ISB制定的規則
08/11 02:54, 28F

08/11 03:48, , 29F
要知道旋轉怎麼算~~就要有張量的概念
08/11 03:48, 29F

08/11 03:49, , 30F
至於怎麼定義~~簡單說就是排列組合...
08/11 03:49, 30F

08/11 11:20, , 31F
他定義跟排列組合沒關係.
08/11 11:20, 31F

08/11 11:52, , 32F
不知道我這樣講對不對...可是尤拉角不就是定義三次旋轉能
08/11 11:52, 32F

08/11 11:53, , 33F
達到所需要的座標位置從正向XYZ座標開始,所以不管怎樣變
08/11 11:53, 33F

08/11 11:53, , 34F
換XYZ的排列方法,都是依照最原始的三次旋轉來做運動
08/11 11:53, 34F

08/11 11:54, , 35F
所以得出的最終相對座標會是一樣的,不是這樣嗎??
08/11 11:54, 35F

08/11 11:55, , 36F
只是他排列方式不同,三次旋轉的順序會不同
08/11 11:55, 36F

08/11 12:51, , 37F
不是,並不是依最原始的三次旋轉來做運動,有的是,有的不是,
08/11 12:51, 37F

08/11 12:52, , 38F
就說每套的定義都不同,有的是對旋轉後的座標系再做轉換.
08/11 12:52, 38F

08/11 12:55, , 39F
有的是一直對原座標系做轉換.
08/11 12:55, 39F

08/11 18:43, , 40F
G大是指因為人的手肘和手掌有先天的轉動角度限制 所以
08/11 18:43, 40F

08/11 18:45, , 41F
想要找個適合的尤拉轉換使得旋轉的角度不會超出限制吧
08/11 18:45, 41F

08/11 18:47, , 42F
機械手的關節不知是否也有這樣的問題
08/11 18:47, 42F

08/11 19:39, , 43F
他定義跟排列組合沒關係?...你真的懂尤拉角嗎
08/11 19:39, 43F

08/11 19:42, , 44F
肯定沒關係.
08/11 19:42, 44F

08/11 19:44, , 45F
xyz yzx請問這是排列組合嗎?
08/11 19:44, 45F

08/11 19:55, , 46F
把排列組合用在這說明尤拉角! 重點是在這嗎?
08/11 19:55, 46F

08/11 19:56, , 47F
那只是最後下的一個結論.挖!原來有這摸多種組合喔!
08/11 19:56, 47F

08/12 05:43, , 48F
原來重點不在這就可以解釋為跟排列組合無關 厲害
08/12 05:43, 48F

08/12 05:47, , 49F
還可以說成肯定沒關係...12種又是怎麼來的
08/12 05:47, 49F

08/12 05:57, , 50F
還有我不知道你是幾維度的空間4*4矩陣請問是哪一個
08/12 05:57, 50F

08/12 05:58, , 51F
另外就你說得轉原座標或是變動座標..依你的'定義'
08/12 05:58, 51F

08/12 05:59, , 52F
是不都是12種..這我就不要求你不要用排列組合算了
08/12 05:59, 52F

08/12 06:00, , 53F
即使你都說跟排列組合肯定沒關係了
08/12 06:00, 53F

08/12 06:06, , 54F
還有別亂扣帽子 尤拉角不是什麼難的東西
08/12 06:06, 54F

08/12 06:06, , 55F
我要說明的是為何有12種定義..你會有這種質疑
08/12 06:06, 55F

08/12 06:11, , 56F
跟誤解 我還挺意外的
08/12 06:11, 56F

08/12 10:22, , 57F
^^!
08/12 10:22, 57F

04/09 16:54, , 58F
這篇寫錯啦啦啦啦啦
04/09 16:54, 58F

04/09 16:56, , 59F
x-y-z尤拉角的轉換矩陣是[Tx][Ty][Tz]才對
04/09 16:56, 59F

04/09 16:57, , 60F
[Tz][Ty][Tx]變成是對固定座標系旋轉了
04/09 16:57, 60F
文章代碼(AID): #1AW2qogN (Mechanical)
文章代碼(AID): #1AW2qogN (Mechanical)