機器人技術(shù)基礎(chǔ) 第2章 齊次變換_第1頁
機器人技術(shù)基礎(chǔ) 第2章 齊次變換_第2頁
機器人技術(shù)基礎(chǔ) 第2章 齊次變換_第3頁
機器人技術(shù)基礎(chǔ) 第2章 齊次變換_第4頁
機器人技術(shù)基礎(chǔ) 第2章 齊次變換_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第二章第二章 齊次坐標(biāo)變換齊次坐標(biāo)變換Chapter Homogeneous TransformationChapter Homogeneous Transformation 2.1 2.1 引言引言 2.2 2.2 點向量和平面的描述點向量和平面的描述2.3 2.3 變換變換 2.4 2.4 平移變換平移變換2.5 2.5 旋轉(zhuǎn)變換旋轉(zhuǎn)變換 2.6 2.6 坐標(biāo)系坐標(biāo)系2.7 2.7 相對變換相對變換 2.8 2.8 物體的描述物體的描述2.9 2.9 逆變換逆變換 2.10 2.10 一般性旋轉(zhuǎn)變換一般性旋轉(zhuǎn)變換2.11 2.11 等價旋轉(zhuǎn)角與旋轉(zhuǎn)軸等價旋轉(zhuǎn)角與旋轉(zhuǎn)軸 2.12 2.12

2、擴展與縮小擴展與縮小2.13 2.13 透視變換透視變換 2.14 2.14 變換方程變換方程2.15 2.15 小結(jié)小結(jié)2.1 2.1 引言引言 (Introduction) 機器人操作涉及到各物體之間的關(guān)系和各物體與機械手之間的關(guān)系。這一章將給出描述這些關(guān)系必須的表達(dá)方法。類似這種表示方法在計算機圖形學(xué)中已經(jīng)解決。在計算機圖形學(xué)和計算機視覺中,物體之間的關(guān)系是用齊次坐標(biāo)變換來描述的。在本課程我們將采用齊次坐標(biāo)變換來描述機械手各關(guān)節(jié)坐標(biāo)之間、各物體之間以及各物體與機械手之間的關(guān)系。 本章首先介紹向量和平面的表示方法,然后引出向量和平面的坐標(biāo)變換,這些變換基本上是由平移和旋轉(zhuǎn)組成,因此可以用坐

3、標(biāo)系來描述各種物體和機械手的空間位置和姿態(tài)。稍后還要介紹逆變換,逆變換是運動學(xué)求解的基礎(chǔ)。a0vzyxzyxpcb0uEH圖2.1 點向量的描述2.2 2.2 點向量點向量和平面的描述和平面的描述(Notation of point vectors and planes) 2.2.1 2.2.1 點向量(點向量(Point vectorsPoint vectors) 點向量描述空間的一個點在某個坐標(biāo)系的空間位置。同一個點在不同坐標(biāo)系的描述及位置向量的值也不同。如圖2.1中,點p在E坐標(biāo)系上表示為 Ev,在H坐標(biāo)系上表示為 Hu,且v u。一個點向量可表示為 v = ai + bj + ck 通

4、常用一個(n + 1)維列矩陣表示,即除 x、y、z 三個方向上的分量外,再加一個比例因子 w ,即 v = x y z w T 其中 a = x/w, b = y/w, c = z/w。 改變比例因子 w,則分量 a、b、c 的數(shù)值相應(yīng)改變,但描述的還是同一個點向量。如 v = 3i + 4j + 5k 可表示為 v = 3 4 5 1 T = 6 8 10 2 T = -3 -4 -5 -1T 在向量中增加一個比例因子 w 是為了方便坐標(biāo)變換中的矩陣運算。 已知兩個向量 a = ax i + ay j + az k b = bx i + by j + bz k (2.1) 向量的點積是標(biāo)量

5、。用“ ”來定義向量點積,即 a b = ax bx + ay by + az bz (2.2 ) 向量的叉積是一個垂直于由叉積的兩個向量構(gòu)成的平面的向量。用“”表示叉積,即 a b = ( ay bz az by ) i + ( az bx ax bz ) j + ( ax by ay by ) k ( 2.3) 可用行列式表示為 i j k a b = ax ay az (2.4) bx by bz2.2.2 2.2.2 平面(平面(PlanesPlanes) 平面可用一個行矩陣表示,即 p = a b c d (2.5)它表示了平面p的法線方向,且距坐標(biāo)原點的距離為d / m,其中 m

6、= (2.6) 如圖2.2所示,如果將 xy 平面沿z 軸正方向平移一個單位距離,構(gòu)成平面 p,則 p = 0 0 1 -1即 a = 0, b = 0, c = 1, d = -1, m = = 1 平面p上任一點v為 v = x y 1 1 T,它與平面p的點乘為零,即 p v = 0 平面p上方任一點v,如 v = 0 0 2 1 T,它與平面p的點乘為一個正數(shù),即 p v = 1 平面p下方任一點v,如 v = 0 0 0 1 T,它與平面p的點乘為一個負(fù)數(shù),即 p v = -1注意:平面注意:平面 0 0 0 0 無定義。無定義。a2 + b2 + c2a2 + b2 + c2 圖2

7、.2 平面的描述0vpzyx1yx2.2.32.2.3坐標(biāo)軸和坐標(biāo)系坐標(biāo)軸和坐標(biāo)系n參考空間向量的坐標(biāo)表示,坐標(biāo)軸的坐標(biāo)表示可以看作向量坐標(biāo)表示的特殊形式:x軸用x軸上距原點距離為零的列單位列向量1,0,0,0T表示,同樣y軸和z軸可用0,1,0,0T和0,0,1,0 T表示。n基坐標(biāo)系的坐標(biāo)表示分為兩個部分:一是坐標(biāo)軸的表示是一個4 3的旋轉(zhuǎn)列矩陣;另一部分是坐標(biāo)原點的表示,是一個4 1的平移列矩陣,于是在一起構(gòu)成4 4的其次矩陣,完整表示了坐標(biāo)系的位置和姿態(tài),簡稱位姿。n 1 0 0 0 nx ox a x p xnA= 0 1 0 0 = nY oY aY pY = ABR BPn 0

8、0 1 0 nz oz az pzn 0 0 0 1 0 0 0 1 0 1 H空間的變換是由44矩陣來完成的,它可以表示平移、旋轉(zhuǎn)、擴展和透視等各種變換。如已知點u(在平面p上),它的變換v(在平面q上)用矩陣積表示為 v = H u (2.7) 其中H為44 變換矩陣,u和v為41的點列向量,相應(yīng)的平面p到q的變換是 q = p H-1 (2.8) 其中H-1為H的逆陣,p和q為14 的平面行向量。 經(jīng)變換后的平面向量q與點向量v的點乘為 q v = p H-1 H u p u ( 2.9) 與變換前平面p與點u的點乘相等,證明了變換的等效性。2.3 2.3 變換變換(Transforma

9、tion)2.4 2.4 平移變換平移變換(Translation transformation) 用向量 h a i + b j + c k 進(jìn)行平移,其相應(yīng)的H變換矩陣是 1 0 0 a 0 1 0 b H = Trans ( a b c ) = 0 0 1 c (2.10) 0 0 0 1 因此對向量 u = x y z w T,經(jīng)H變換為向量v可表示為 x + a y + b v = z + c (2.11) 1 可見,平移實際上是對已知向量 u = x y z w T 與平移向量 h = a b c 1 T 相加?!纠?.1】對點向量 u = 2 3 2 1 T 進(jìn)行平移,平移向量為

10、 h = 4 -3 7 1 T,則平移后的向量為 v = 6 0 9 1 T,或 1 0 0 4 2 6 0 1 0 3 3 0 v = H u = 0 0 1 7 2 = 9 0 0 0 1 1 1 點向量的平移過程如圖2.3所示。 對平面的平移則用 H1 進(jìn)行變換,如對平面 p = 1 0 0 -2 進(jìn)行 H 變換為平面q,則根據(jù)變 換原理有 1 0 0 -4 0 1 0 3 q p H1 1 0 0 -2 0 0 1 -7 0 0 0 1 1 0 0 -6 平面 p 1 0 0 -2 是 yz 平面沿 x 正方向移動2個單位形成的平面(圖2.3),點u = 2 3 2 1 T 是平面 p

11、上的一個點,它們的點乘 p u = 0。經(jīng) H 變換后的平面 q 1 0 0 -6 是 yz 平面沿 x 正方向移動6個單位形成的平面,點v = 6 0 9 1T 是平面 q上一個點,平面 q 與點 v 的點乘也應(yīng)是零,即 q v 0,說明變換前后的結(jié)果不變,證明 H 變換是正確的。 u0zyx3P22圖2.3 點向量的平移v69qp2.5 2.5 旋轉(zhuǎn)變換旋轉(zhuǎn)變換(Rotation transformation) 如圖2.4所示,繞 x, y, z 軸旋轉(zhuǎn)一個角的相應(yīng)變換是 1 0 0 0 0 cos - sin 0Rot ( x, ) = 0 sin cos 0 (2.12) 0 0 0

12、1 cos 0 sin 0 0 1 0 0Rot ( y, ) = - sin 0 cos 0 (2.13) 0 0 0 1 cos - sin 0 0 sin cos 0 0Rot ( z, ) = 0 0 1 0 (2.14) 0 0 0 1注意:角旋轉(zhuǎn)的正方向遵循右手螺旋法則(如圖2.4所示)圖2.4 旋轉(zhuǎn)變換0zyxy/z/【例2.2】點 u = 7i + 3j + 2k,它繞z軸旋轉(zhuǎn)90為v, 經(jīng)式(2.14)變換得到( sin=1,cos=0) 0 -1 0 0 7 -3 1 0 0 0 3 7 v = Rot ( z, 90) u= 0 0 1 0 2 2 0 0 0 1 1 1

13、 起始點u和終點v如圖2.5所示。如將v點再繞y軸旋轉(zhuǎn)-90得到w。用式(2.13)變換得到 0 0 -1 0 -3 -2 0 1 0 0 7 7w = Rot ( y, -90) v= 1 0 0 0 2 -3 0 0 0 1 1 1 結(jié)果如圖2.6所示。如果將上述兩次旋轉(zhuǎn)結(jié)合起來,寫成一個表達(dá)式得到 w = Rot ( y, -90) v Rot ( y, -90) Rot ( z, 90) u 用兩個變換矩陣 Rot ( y, -90) 、 Rot ( z, 90) 和起始點u代入上式計算的結(jié)果與前面分兩次計算的結(jié)果相同。2uzyxv0圖2.5 Rot ( z, 90) yuv0zxw圖

14、2.6 Rot ( y, 90) Rot ( z, 90)27為此,先將點u繞z軸旋轉(zhuǎn)90,然后再繞y軸旋轉(zhuǎn)-90,我們得到 0 0 -1 0 0 -1 0 0 7 -2 0 1 0 0 1 0 0 0 3 7w Rot ( y, -90) Rot ( z, 90) u = 1 0 0 0 0 0 1 0 2 -3 0 0 0 1 0 0 0 1 1 1如果按著逆序旋轉(zhuǎn),首先繞y軸旋轉(zhuǎn)-90,然后再繞z軸旋轉(zhuǎn)90,其結(jié)果為 0 -1 0 0 0 0 1 0 7 -3 1 0 0 0 0 1 0 0 3 2w = Rot ( z, 90) Rot ( y, -90) u = 0 0 1 0 -1

15、 0 0 0 2 = -7 0 0 0 1 0 0 0 1 1 1 逆序旋轉(zhuǎn)的結(jié)果如圖2.7所示。顯然,變換的順序不同,其結(jié)果也不同變換的順序不同,其結(jié)果也不同 。這從矩陣相乘是不可交換的(ABBA)也可以得到證明。 如對經(jīng)過兩次旋轉(zhuǎn)變換得到的點向量w再進(jìn)行一次平移(平移向量為 h 4 -3 7 1T ),則可得到如圖2.8所示的點向量n。變換過程如下 1 0 0 4 2 6 0 1 0 -3 7 4 n = Trans (4, 3, 7) w = 0 0 1 7 3 = 10 0 0 0 1 1 1 zuv0yxw 圖2.8 Trans(4, -3, 7)Rot(y, -90) Rot(z,

16、 90)n72w0zyxu圖2.7 Rot ( z, 90) Rot ( y, -90)2-7v2.6 2.6 坐標(biāo)系坐標(biāo)系 (Coordinate frames) 齊次變換矩陣H由四個列向量組成,它的前三個列向量稱為方向向量,由式(2.12)到式(2.14)的旋轉(zhuǎn)變換(分別繞 x、y、z 軸旋轉(zhuǎn)角)確定,第四個列向量稱為平移向量,它的平移分量(沿 x、y、z 軸的平移量)由式(2.10)第四列的前三個元素確定。如 0 0 1 4 1 0 0 -3 HTrans ( 4, -3, 7 ) Rot ( y, 90) Rot ( z, 90) = 0 1 0 7 (2.15) 0 0 0 1 坐標(biāo)

17、系的原點,即零向量 0 0 0 1 T 的 H 變換是 4 -3 7 1 T,相當(dāng)于將原點按平移向量的各個分量進(jìn)行平移的結(jié)果( 如圖 2.9 所示)。如果對 x、y、z 軸的單位向量進(jìn)行 H變換,分別得到 0 1 0 0 T 、 0 0 1 0 T 和 1 0 0 0 T。這四個向量在圖2.9中標(biāo)出,并形成了一個新坐標(biāo)系。0zyxzyx0Trans ( 4, -3, 7 )Rot ( z, 90)Rot ( y, 90)圖2.9 坐標(biāo)原點與單位向量的H 變換 這個新坐標(biāo)系的 x、y、z 軸的方向分別是 0,1,0,0 T、 0,0,1,0 T 和 1,0,0,0 T,它是由單位向量的H變換減去

18、這個坐標(biāo)原點的向量得到的。這些方向向量相應(yīng)于變換矩陣的前三列(見式(2.15)??梢?,H變換矩陣描述了一個坐標(biāo)系繞原參考坐標(biāo)系旋轉(zhuǎn)和對參考坐標(biāo)系平移的三個軸的方向和原點的位置(見圖2.9)。如圖2.10所示,當(dāng)對一個向量 n 進(jìn)行式(2.15)給出的 H 變換時,原向量 n 可以被認(rèn)為是在新坐標(biāo)系描述的那個向量 u ,即被變換了的向量 u 就是相對于參考坐標(biāo)系描述的同一個向量 n 。00zzyyxxu ( 7, 3, 2, 1 )n ( 6, 4, 10, 1 )圖2.10 向量的 H 變換本節(jié)作業(yè):本節(jié)作業(yè):n在坐標(biāo)系A(chǔ)中,點p的原始位置為Ap1=3,7,0T,其運動軌跡如下:首先繞z軸旋轉(zhuǎn)

19、30。,再沿x軸平移10個單位,最后沿y軸平移5個單位。求運動后的位置Ap2。在坐標(biāo)系在坐標(biāo)系A(chǔ)中,點中,點p的原始位置為的原始位置為Ap1=3,7,0T,其運動軌跡如下:其運動軌跡如下:首先繞首先繞z軸旋轉(zhuǎn)軸旋轉(zhuǎn)30。,再沿,再沿x軸平移軸平移10個單位,最后沿個單位,最后沿y軸平移軸平移5個個單位。求運動后的位置單位。求運動后的位置Ap2。n解: 0.866 -0.5 0 10 3 0.5 0.866 0 5 7 T = 0 0 1 0 ; Ap1 = 0 0 0 0 1 1 0.866 -0.5 0 10 3 9.098 0.5 0.866 0 5 7 12.562 Ap2 = T Ap

20、1 = 0 0 1 0 0 = 0 0 0 0 1 1 1n點 向量 坐標(biāo)軸 坐標(biāo)系 旋轉(zhuǎn)變換 平移變換 2.7 2.7 相對變換相對變換(Relative transformation) 我們剛剛描述的旋轉(zhuǎn)和平移都是相對于一個固定的坐標(biāo)系而進(jìn)行的。這樣,在已給的例子里 0 0 1 4 1 0 0 -3 Trans ( 4, -3, 7 ) Rot ( y,90) Rot ( z, 90) = 0 1 0 7 (2.16.a) 0 0 0 1式(2.16)從右向左可以理解為:坐標(biāo)系首先繞參考坐標(biāo)系 z 軸旋轉(zhuǎn)90,然后繞 y 軸旋轉(zhuǎn) 90,最后平移 4i3j+7k,如圖2.9所示。如果以相反次

21、序從左到右來進(jìn)行這些操作:首先對坐標(biāo)平移4i3j+7k,然后將它繞當(dāng)前坐標(biāo)系的 y 軸旋轉(zhuǎn) 90,此時當(dāng)前坐標(biāo)系的 y 軸與參考坐標(biāo)系的 y 軸是相同的。然后再繞著新坐標(biāo)系(當(dāng)前的)坐標(biāo)系的 z 軸旋轉(zhuǎn)90,所得結(jié)果與前面的方法相同(見圖2.11),即變換矩陣一致。 00zzzyyyyxxxRot ( y, 90)Rot ( z, 90)Trans ( 4, -3, 7 )坐標(biāo)原點圖2.11 相對變換xz 一般的情況下,如果我們用一個旋轉(zhuǎn)和/或平移變換矩陣右乘一個坐標(biāo)系的變換,那么產(chǎn)生的平移和/或旋轉(zhuǎn)是相對于前一個變換的坐標(biāo)系(當(dāng)前坐標(biāo)系)的軸來說的。如果我們用一個描述平移和/或旋轉(zhuǎn)的變換矩陣

22、左乘一個坐標(biāo)系的變換,那么產(chǎn)生的平移和/或旋轉(zhuǎn)是相對于基坐標(biāo)系來說的?!纠?.3】給一個坐標(biāo)系C和一個變換T,T為繞 z 軸旋轉(zhuǎn)90,并在 x 軸方向上平移10個單位,當(dāng)變換是相對于基坐標(biāo)系產(chǎn)生時,我們用 T 左乘 C 得到新的位置 x 為 0 -1 0 10 1 0 0 20 0 0 1 0 1 0 0 0 0 0 -1 10 1 0 0 20 x = T C = 0 0 1 0 0 1 0 0 0 1 0 0 (2.17) 0 0 0 1 0 0 0 1 0 0 0 1 當(dāng)變換是相對于當(dāng)前坐標(biāo)系 C 軸產(chǎn)生時,我們用 T 右乘 C 得到新的位置 y 為 1 0 0 20 0 -1 0 10

23、 0 -1 0 30 0 0 -1 10 1 0 0 0 0 0 -1 10 y = C T = 0 1 0 0 0 0 1 0 1 0 0 0 (2.18) 0 0 0 1 0 0 0 1 0 0 0 1 結(jié)果如圖2.12所示。 YXTrans (10, 0, 0 )Rot ( z, 90)0zyxxxxxyyyyzzzzRot ( z, 90)Trans (10, 0, 0 )圖2.12 相對于基坐標(biāo)系和當(dāng)前坐標(biāo)系的變換2.8 2.8 物體的描述物體的描述(Object representation) 變換可用來描述物體的位置與方向(方位)。如圖2.13所示的楔形物體用六個角點來描述,這六

24、個角點是相對于物體所在的參考坐標(biāo)系的。如果把物體繞 z 軸旋轉(zhuǎn) 90,然后繞 y 軸旋轉(zhuǎn) 90,接著沿 x 方向平移4個單位,我們可以描述這個變換為 0 0 1 4 1 0 0 0 Trans ( 4, 0, 0 ) Rot ( y, 90) Rot ( z, 90) = 0 1 0 0 0 0 0 1 這個變換表示了對參考坐標(biāo)系的旋轉(zhuǎn)和平移操作,變換后物體的六個角點為 4 4 6 6 4 4 0 0 1 4 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 1 0 0 0 0 0 0 0 4 4 0 0 0 0 4 4 = 0 1 0 0 0 0 0 2 2 0 1 1 1 1 1

25、 1 0 0 0 1 1 1 1 1 1 1 變換后該物體在坐標(biāo)上的方位如圖2.13所示。 從圖2.13可以看出,由于楔形物體的角點與它所在的坐標(biāo)系有固定的關(guān)系,因此沒有必要對所有的角點進(jìn)行變換,只要對物體所在的坐標(biāo)系進(jìn)行變換,就可得到變換后的各個角點在基坐標(biāo)中的位置,將這些角點用直線連接起來就可得到楔形物體的邊緣,它與逐點變換的結(jié)果完全相同(見圖2.14)。( -1, 0, 0 )( -1, 0, 2 )( 1, 0, 2 )( 1, 4, 0 )( -1, 4, 0 )( 1, 0, 0 )zyx0圖2.13 楔形物體圖2.14 被變換的楔形物體( 4, 1, 0 )( 4, -1, 4

26、)( 4, 1, 4 )( 6, 1, 0 )( 6, -1, 0 )( 4, -1, 0 )yx0yxzz2.9 2.9 逆變換逆變換(Inverse transformation) 所謂逆變換就是將被變換的坐標(biāo)系返回到原來的坐標(biāo)系,在數(shù)學(xué)上就是求變換矩陣的逆。 下面我們寫出變換矩陣的一般表達(dá)形式 nx ox ax px ny oy ay py T = nz oz az pz (2.19) 0 0 0 1 式中 n, o, a 是旋轉(zhuǎn)變換列向量,p 是平移向量,其逆是 nx ny nz - p.n ox oy oz - p.o T-1 = ax ay az - p.a (2.20) 0 0

27、0 1 式中的 “ . ” 表示向量的點積。這個結(jié)果很容易用式2.19右乘式2.20是單位矩陣來證明。例:已知例:已知ABT表示表示B相對相對A繞其繞其z軸轉(zhuǎn)軸轉(zhuǎn)30。 ,再沿,再沿x軸移動軸移動4,沿,沿y軸移動軸移動3. 求求BAT。并說明它所表示的運動(指相對于固定坐標(biāo)系而言)。并說明它所表示的運動(指相對于固定坐標(biāo)系而言)。n解: ABT=Trans(4,3,0) Rot(z,30。) 0.866 -0.5 0 4 0.5 0.866 0 3 = 0 0 1 0 0 0 0 1 0.866 0.5 0 -4.964 -0.5 0.866 0 -0.598 ABT-1= 0 0 1 0

28、0 0 0 1 BAT=ABT-1= Rot(z,-30。)Trans(-4,-3,0) 解釋為: A相對基坐標(biāo)系移動-4i-3j+0k,再繞基坐標(biāo)系 的z軸轉(zhuǎn)-30 。;也可解釋為:首先A繞B的z軸旋轉(zhuǎn)-30 。 ,得到新坐標(biāo)系A(chǔ)1,然后再相對A1移動-4i-3j+0k,得到A(A B ) C= A (B C) T X X TnTrans(Px,Py,Pz) Rot(y, ) Rot(z, ) = Trans(Px,Py,Pz) Rot(y, ) Rot(z, ) 由上述關(guān)系,我們可以有相對變換和絕對變換矩陣的兩種理解形式由上述關(guān)系,我們可以有相對變換和絕對變換矩陣的兩種理解形式n T X

29、X T 由上述關(guān)系可以理解相對變換和絕對變換的結(jié)果是不同的由上述關(guān)系可以理解相對變換和絕對變換的結(jié)果是不同的 2.10 2.10 一般性旋轉(zhuǎn)變換(一般性旋轉(zhuǎn)變換(General rotation transformation) 前面我們介紹的旋轉(zhuǎn)變換都是繞 x,y,z 軸旋轉(zhuǎn)的旋轉(zhuǎn)變換,這些變換都有一個簡單的幾何解釋。例如:在繞 z 軸旋轉(zhuǎn)的情況下,表示 z 軸保持恒定,x 軸和 y 軸將如圖2.15所示那樣變化。 圖2.15 繞 z 軸的旋轉(zhuǎn)z0zyyxxCos Sin Sin Cos 如圖2.16所示,給出一個變換矩陣 C,它繞任意向量 k 旋轉(zhuǎn),我們把 k當(dāng)作 C坐標(biāo)系的 z 軸單位向量

30、。 nx ox ax 0 ny oy ay 0 C = nz oz az 0 (2.21) 0 0 0 1 k = ax i + ay j + az k (2.22)繞 k 旋轉(zhuǎn)就相等于繞 C 坐標(biāo)系的 z 軸旋轉(zhuǎn)。 Rot( k,)= Rot(Cz,) (2.23) 如果我們給一個坐標(biāo)系T,它在參考坐標(biāo)系里被描述,它在C坐標(biāo)系里用X描述,這樣 T = C X (2.24)其中X描述T相對C的位姿,求X,我們得到 X = C-1 T (2.25)kTzzyyxxx00圖2.16 一般性旋轉(zhuǎn)變換CT 繞 k 旋轉(zhuǎn)就等于繞坐標(biāo)系的 z 軸旋轉(zhuǎn) Rot( k, ) C Rot( z, )X (2.2

31、6) Rot( k, ) C Ro t( z, )C-1 T (2.27)這樣 Rot( k, ) C Rot( z, )C-1 (2.28)展開式(2.28),我們發(fā)現(xiàn) C Rot( z, )C-1 僅是 k 的函數(shù)。用C-1右乘 Rot( z, ) ,我們得到 cos -sin 0 0nx ny nz 0 sin cos 0 0ox oy oz 0 Rot( z, )C-1 0 0 1 0ax ay az 0 0 0 0 1 0 0 0 1 nx cosox sin ny cosoy sin nz cosoz sin 0 nx cos + ox sin ny cos + oy sin nz

32、 cos+ oz sin 0 = ax ay az 0 (2.29) 0 0 0 1再用C左乘 nx ox ax 0 ny oy ay 0 C = nz oz az 0 (2.30) 0 0 0 1得到 C Rot( z, )C-1 = nxnx cos nxox sin+ nxox sin+ oxox cos+ ax ax nynx cos nyox sin+ nxoy sin+ oyox cos+ ay ax nznx cos nzox sin+ nxoz sin+ oz ox cos+ az ax 0 nxny cos nxoy sin+ nyox sin+ oyox cos+ ax a

33、y nyny cos nyoy sin+ nyoy sin+ oyoy cos+ ay ay nzny cos nzoy sin+ nyoz sin+ oyoz cos+ az ay 0 nxnz cos nxoz sin+ nzox sin+ ozox cos+ ax az 0 nynz cos nyoz sin+ nzoy sin+ ozoy cos+ ay az 0 nznz cos nzoz sin+ nzoz sin+ ozoz cos+ az az 0 (2.31) 0 1應(yīng)用下列關(guān)系進(jìn)行簡化: C 坐標(biāo)系任意的行或列與其他行或列的點積為零,因為這些向量是正交的; C 坐標(biāo)系任意的

34、行或列與其自身的點積為I ,因為它們是單位量; z 向量是 x 和 y 向量的叉積:a = n o,它有下列分量 ax = ny oz nz oy ay = nz ox nx o z az = nx oy ny ox 正矢 函數(shù)( Vers=(rcos),這里 Vers=(1cos),簡寫成 Vers,且 kx = ax ,ky = ay ,kz = az 。由此可得到簡化式為 Rot ( k, ) = kx kx Vers+ cos ky kx Verskz sin kz kx Vers + kysin 0 kx kyVers+ kz sin ky ky Vers+ cos kz kyVer

35、s kzxsin 0 kx kzVerskysin ky kz Vers + kxsin kz kzVers+ cos 0 (2.32) 0 0 0 1上式是一般性的旋轉(zhuǎn)變換的重要結(jié)論。從這個結(jié)論可以得出每一個基本旋轉(zhuǎn)變換。例如:Rot ( x, )就是Rot ( k, )當(dāng) kx= 1,ky= 0, kz= 0 的情況,將這些值代入式(2.32)得到 1 0 0 0 0 cos -sin 0 Rot ( x, ) = 0 sin cos 0 (2.33) 0 0 0 1這個結(jié)果與以前一樣。2.11 等價旋轉(zhuǎn)角與旋轉(zhuǎn)軸等價旋轉(zhuǎn)角與旋轉(zhuǎn)軸(Equivalent angle and axis of

36、 rotation) 任給一個旋轉(zhuǎn)變換,從(2.32)方程得到一個軸,繞這個軸旋轉(zhuǎn)的等價旋轉(zhuǎn)角可由如下方法得到。已知一個旋轉(zhuǎn)變換 R nx ox ax 0 ny oy ay 0 R = nz oz az 0 (2.34) 0 0 0 1令 R 和式 (2.32)的 Rot ( k, ) 相等,并將對角線各項相加得到nx + oy + az +1 = k2x Vers+ cos+ k2yVers+ cos + k2z Vers+ cos+1 (2.35) nx + oy + az = ( k2x + k2y + k2z ) Vers+ 3cos = 1 + 2cos (2.36)由此可得到旋轉(zhuǎn)角

37、的余弦是 cos = 1/2(nx + oy + az1) (2.37)對非對角線項相減,我們得到 oz ay = 2 kx sin (2.38) ax nz = 2 ky sin (2.39) ny ox = 2 kz sin (2.40)把式(2.38)到式(2.40)兩邊平方并相加有 (oz ay)2 +( ax nz)2 +( ny ox )2 = 4 sin2 (2.41)我們得到了sin的表達(dá)式 sin = 1/2(oz ay)2 +( ax nz)2 +( ny ox )2 (2.42)規(guī)定這個旋轉(zhuǎn)是繞 k 正方向旋轉(zhuǎn),當(dāng) 0180時,在上式中取十號是合理的。這個旋轉(zhuǎn)角被唯一定義

38、為 tan =(oz ay)2 +( ax nz)2 +( ny ox )2 /(nx + oy + az1 ) (2.43) k的各分量為 kx =(ozay)/ 2 sin (2.44) ky =(axnz)/ 2 sin (2.45) kz =(nyox)/ 2 sin (2.46)注意注意:當(dāng)旋轉(zhuǎn)角較小或接近 180時,上述三個式子的分子和分母都很小,所計算的k值是不精確的。為此可繼續(xù)根據(jù)式(2.32)和式(2.33)對應(yīng)元素以及它們的代數(shù)和相等的關(guān)系來求出k的各個分量。例:求復(fù)合旋轉(zhuǎn)矩陣?yán)呵髲?fù)合旋轉(zhuǎn)矩陣ABR=R(y,90。) R(z,90 。)的等效轉(zhuǎn)軸的等效轉(zhuǎn)軸k和轉(zhuǎn)角和轉(zhuǎn)角。

39、例:求復(fù)合旋轉(zhuǎn)矩陣?yán)呵髲?fù)合旋轉(zhuǎn)矩陣ABR=R(y,90。) R(z,90 。)的等效轉(zhuǎn)軸的等效轉(zhuǎn)軸k和轉(zhuǎn)角和轉(zhuǎn)角。n解: 0 0 1 0 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 ABR = -1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 cos =1/2(0+0+0-1)=-1/2 sin = 1/2(10)2 +( 1 0)2 +( 1 0 )2 = 3 /2 tan = - 3得: =120 。 kx=ky=kz=1/ 3 k=1/ 3 i+1/ 3 j+1/ 3 k2.12 2.12 擴展與縮小

40、擴展與縮小(Stretching and scaling) 一個變換T a 0 0 0 0 b 0 0 T = 0 0 c 0 (2.47) 0 0 0 1 將沿著 x 軸以 a 因子,沿著 y 軸以 b 因子,沿著 z 軸 c 因子均勻擴展著各種物體。假定在一個物體上任意一個點 x i + y j + z k ,它的變換是 a x a 0 0 0 x b y 0 b 0 0 y c z = 0 0 c 0 z (2.48) 1 0 0 0 1 1這個正好表示出所說的擴展。這樣,一個正方體可以由這個變換變成長方體。變換s s 0 0 0 0 s 0 0 s = 0 0 s 0 (2.49) 0

41、 0 0 1將以s為比例因子來擴展或縮小任一物體。2.13 透視變換透視變換(Perspective transformation) 假設(shè)由一個簡單透鏡把一個物體形成的像如圖2.17所示。透鏡的軸沿著 y 的方向,焦距為f ,物體上的一個點 x, y, z 成象為 x/, y/, z/。y/ 表示象距,它隨著物距 y 而變化。如果在通過 y/ 而垂直于 y 的平面(照相機的底片)上畫出各個點,那么就形成了一個透視像。射線穿過透鏡中心不偏轉(zhuǎn),則 z / y = z/ / y/ (2.50) x / y = x/ / y/ (2.51) 根據(jù)平行透鏡的軸的射線通過焦點,我們可以寫出 z / f =

42、 z/ / ( y/ + f ) (2.52) x / f = x/ / ( y/ + f ) (2.53)x/ y/ 和 z/ 是負(fù)數(shù),而 f 是正數(shù)。用式(2.50)和式(2.52)消去 y/ ,得 z / f = z/ ( z/ y / z + f ) (2.54) zyx0( x, y, z )( x, y, z )f圖2.17 透視變換求出 x/ = x ( 1y/f ) (2.55) y/ = y ( 1y/f ) (2.56) z/ = z ( 1y/f ) (2.57)齊次變換 p 能導(dǎo)出同樣結(jié)果,變換 p 是 1 0 0 0 0 1 0 0 p = 0 0 1 0 (2.58) 0 -1/f 0 1任何一點 x i + y j + z k 變換為 x 1 0 0 0 x y 0 1 0 0 y z = 0 0 1 0 z (2.59) 1y/f 0 -1/f 0 1 1用比例因子 1 y / f 除得到的象點 x/, y/, z/ 有 x /(1y/f) i + y/(1y/f) j + z/(1y/f) k (2.60) 這個結(jié)果與前面利用透視原理的結(jié)果完全相同。在 p 變換的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論