2011-08-25 1376 views
0

我在Python http://code.google.com/p/robotics-toolbox-python/的機器人學工具箱(cq機器人模塊)中使用,我完全困惑如何解釋下面的轉換結果(我做過這樣的事情在過去總是可以解決......)。Python(機器人模塊):轉換。 (旋轉)矩陣和歐拉角或RPY角

一個簡單的披= PI/10繞x軸的旋轉產生以下(3×3)的旋轉矩陣:

R = 
[ 1.   0.   0.  ] 
[ 0.   0.99609879 -0.08824514] 
[-0.   0.08824514 0.99609879]] 

(其中0.996 .. = COS(PHI)和0.0882 .. = SIN( PHI))

與相應的(4×4)齊次變換矩陣:

T = | R 0 | = 
    | 0 1 | 

[[ 1.   0.   0.   0.  ] 
[ 0.   0.99609879 -0.08824514 0.  ] 
[-0.   0.08824514 0.99609879 0.  ] 
[ 0.   0.   0.   1.  ]] 

轉化的T成角度表示產生以下:

RPY(滾動,俯仰,偏航)角(圍繞Z,Y軸和x軸,分別,...我推測):

print robot.tr2rpy(T) 

[[ 0.   0.   0.08836007]] 

問題:在x旋轉如何可以是最後一個元素(而不是第一個)....?

此外:

歐拉角(圍繞x,y和z軸,分別,...我推測):

print robot.tr2eul(T) 

[[-1.57079633 0.08836007 1.57079633]] 

(= [[-PI/4, sin(phi),PI/4]]))

問題:我的解釋(繞x,y,z軸的順序旋轉)告訴我結果是錯的......?

我錯過了什麼?謝謝。

- 亨克

回答

0

解決:

隨着連續的角度,一個[0],A [1],A [2],

1)爲歐拉角這些都是圍繞連續旋轉ZYZ軸; 2)對於RPY角,這些是連續的Y(aw)-P(癢)-R(滾動)旋轉(即圍繞Z-Y-X軸)。