網(wǎng)站開(kāi)發(fā)是什么專(zhuān)業(yè)優(yōu)化20條措施
文章目錄
- 02 三維空間的剛體運(yùn)動(dòng)
- 2.0 機(jī)器人位姿表述
- 2.1 點(diǎn)和坐標(biāo)系
- 2.1.1 三維坐標(biāo)系有關(guān)表述
- 2.1.2 坐標(biāo)系變換
- 2.2 旋轉(zhuǎn)向量和歐拉角
- 2.2.1 旋轉(zhuǎn)向量
- 2.2.2 歐拉角
- 2.3 四元數(shù)
- 2.3.1 四元數(shù)的定義
- 2.3.2 四元數(shù)的計(jì)算
- 2.3.3 四元數(shù)表示旋轉(zhuǎn)
- 2.3.4 四元數(shù)與其他旋轉(zhuǎn)表示法的轉(zhuǎn)換
- 2.4 相似、仿射、射影變換
02 三維空間的剛體運(yùn)動(dòng)
2.0 機(jī)器人位姿表述
(1)二維與三維空間中,機(jī)器人位姿的表述:
-
2D 的情況:橫縱坐標(biāo) + 旋轉(zhuǎn)角(機(jī)器人朝向),即 [ x , y , θ ] [x, y, \theta] [x,y,θ]
-
3D 的情況:三維空間中的旋轉(zhuǎn)和平移
2.1 點(diǎn)和坐標(biāo)系
2.1.1 三維坐標(biāo)系有關(guān)表述
(1)基本運(yùn)算
-
加減法
-
內(nèi)積(點(diǎn)乘): a ? b = a T b = ∑ i = 1 3 a i × b i = ∣ a ∣ ∣ b ∣ c o s < a , b > \boldsymbol{a}\cdot\boldsymbol=\boldsymbol{a}^T\boldsymbol=\sum_{i=1}^{3}a_{i}\times b_{i} = |\boldsymbol{a}| |\boldsymbol|cos<\boldsymbol{a}, \boldsymbol> a?b=aTb=∑i=13?ai?×bi?=∣a∣∣b∣cos<a,b>,且 a ? b = b ? a \boldsymbol{a}\cdot\boldsymbol = \boldsymbol\cdot\boldsymbol{a} a?b=b?a
-
外積(叉乘):
a × b = ∥ e 1 e 2 e 3 a 1 a 2 a 3 b 1 b 2 b 3 ∥ = ( a 2 b 3 ? a 3 b 2 ) e 1 + ( a 3 b 1 ? a 1 b 3 ) e 2 + ( a 1 b 3 ? a 3 b 1 ) e 3 = [ a 2 b 3 ? a 3 b 2 a 3 b 1 ? a 1 b 3 a 1 b 2 ? a 2 b 1 ] = [ 0 ? a 3 a 2 a 3 0 ? a 1 ? a 2 a 1 0 ] b = def? a ∧ b (2-1) \begin{aligned} \boldsymbol{a} \times \boldsymbol=\left\|\begin{array}{ccc} \boldsymbol{e}_{1} & \boldsymbol{e}_{2} & \boldsymbol{e}_{3} \\ a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \end{array}\right\| &=(a_2b_3-a_3b_2)\boldsymbol{e}_{1}+(a_3b_1-a_1b_3)\boldsymbol{e}_{2}+(a_1b_3-a_3b_1)\boldsymbol{e}_{3} \\ &=\left[\begin{array}{c} a_{2} b_{3}-a_{3} b_{2} \\ a_{3} b_{1}-a_{1} b_{3} \\ a_{1} b_{2}-a_{2} b_{1} \end{array}\right]=\left[\begin{array}{ccc} 0 & -a_{3} & a_{2} \\ a_{3} & 0 & -a_{1} \\ -a_{2} & a_{1} & 0 \end{array}\right] \boldsymbol\stackrel{\text { def }}{=}\boldsymbol{a}^{\wedge} \boldsymbol \end{aligned} \tag{2-1} a×b= ?e1?a1?b1??e2?a2?b2??e3?a3?b3?? ??=(a2?b3??a3?b2?)e1?+(a3?b1??a1?b3?)e2?+(a1?b3??a3?b1?)e3?= ?a2?b3??a3?b2?a3?b1??a1?b3?a1?b2??a2?b1?? ?= ?0a3??a2???a3?0a1??a2??a1?0? ?b=?def?a∧b?(2-1)
也即 a × b = ∣ a ∣ ∣ b ∣ s i n < a , b > \boldsymbol{a} \times \boldsymbol = |\boldsymbol{a}| |\boldsymbol|sin<\boldsymbol{a}, \boldsymbol> a×b=∣a∣∣b∣sin<a,b>,方向垂直于向量 a \boldsymbol{a} a、 b \boldsymbol b 組成的平面,遵循右手定則。
性質(zhì): a × b = ? b × a \boldsymbol{a} \times \boldsymbol = - \boldsymbol \times \boldsymbol{a} a×b=?b×a
為便于后續(xù)表達(dá),記
a ∧ = [ 0 ? a 3 a 2 a 3 0 ? a 1 ? a 2 a 1 0 ] (2-2) \boldsymbol{a}^{\wedge}=\left[\begin{array}{ccc} 0 & -a_{3} & a_{2} \\ a_{3} & 0 & -a_{1} \\ -a_{2} & a_{1} & 0 \end{array}\right] \tag{2-2} a∧= ?0a3??a2???a3?0a1??a2??a1?0? ?(2-2)
這是一個(gè)反對(duì)稱矩陣,滿足 A T = ? A A^T=-A AT=?A。
2.1.2 坐標(biāo)系變換
(1)三維空間向量表示:
a = [ e 1 , e 2 , e 3 ] [ a 1 a 2 a 3 ] = a 1 e 1 + a 2 e 2 + a 3 e 3 (2-3) \boldsymbol{a}=\left[\boldsymbol{e_1},\boldsymbol{e_2},\boldsymbol{e_3}\right]\left[\begin{array}{l} a_{1} \\ a_{2} \\ a_{3} \end{array}\right]=a_1\boldsymbol{e_1}+a_2\boldsymbol{e_2}+a_3\boldsymbol{e_3} \tag{2-3} a=[e1?,e2?,e3?] ?a1?a2?a3?? ?=a1?e1?+a2?e2?+a3?e3?(2-3)
其中, e 1 、 e 2 、 e 3 \boldsymbol{e_1}、\boldsymbol{e_2}、\boldsymbol{e_3} e1?、e2?、e3?為基向量。
(2)兩個(gè)坐標(biāo)系之間的運(yùn)動(dòng)由一個(gè)旋轉(zhuǎn)加一個(gè)平移組成,這種運(yùn)動(dòng)稱為剛體運(yùn)動(dòng)。
(3)對(duì)于坐標(biāo)系旋轉(zhuǎn)變換,假設(shè)原坐標(biāo)系和現(xiàn)坐標(biāo)系單位正交基底分別為 [ e 1 , e 2 , e 3 ] [\boldsymbol{e_1}, \boldsymbol{e_2}, \boldsymbol{e_3}] [e1?,e2?,e3?]和 [ e 1 ′ , e 2 ′ , e 3 ′ ] [\boldsymbol{e_1'}, \boldsymbol{e_2'}, \boldsymbol{e_3'}] [e1′?,e2′?,e3′?],
坐標(biāo)分別為 [ a 1 , a 2 , a 3 ] T [a_1, a_2, a_3]^T [a1?,a2?,a3?]T和
[ a 1 ′ , a 2 ′ , a 3 ′ ] T [a_1', a_2', a_3']^T [a1′?,a2′?,a3′?]T,由于向量本身的絕對(duì)位置沒(méi)有改變,則
[ e 1 , e 2 , e 3 ] [ a 1 a 2 a 3 ] = [ e 1 ′ , e 2 ′ , e 3 ′ ] [ a 1 ′ a 2 ′ a 3 ′ ] (2-4) \left[\boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \boldsymbol{e}_{3}\right]\left[\begin{array}{l} a_{1} \\ a_{2} \\ a_{3} \end{array}\right]=\left[\boldsymbol{e}_{1}^{\prime}, \boldsymbol{e}_{2}^{\prime}, \boldsymbol{e}_{3}^{\prime}\right]\left[\begin{array}{c} a_{1}^{\prime} \\ a_{2}^{\prime} \\ a_{3}^{\prime} \end{array}\right] \tag{2-4} [e1?,e2?,e3?] ?a1?a2?a3?? ?=[e1′?,e2′?,e3′?] ?a1′?a2′?a3′?? ?(2-4)
將上式兩端分別左乘 [ e 1 T e 2 T e 3 T ] \left[\begin{array}{l} \boldsymbol{e_{1}^T} \\ \boldsymbol{e}_{2}^T \\ \boldsymbol{e}_{3}^T \end{array}\right] ?e1T?e2T?e3T?? ?得到,
[ a 1 a 2 a 3 ] = [ e 1 T e 1 ′ e 1 T e 2 ′ e 1 T e 3 ′ e 2 T e 1 ′ e 2 T e 2 ′ e 2 T e 3 ′ e 3 T e 1 ′ e 3 T e 2 ′ e 3 T e 3 ′ ] [ a 1 ′ a 2 ′ a 3 ′ ] = def? R a ′ (2-5) \left[\begin{array}{l} a_{1} \\ a_{2} \\ a_{3} \end{array}\right]=\left[\begin{array}{lll} \boldsymbol{e}_{1}^T \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{1}^T \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{1}^T \boldsymbol{e}_{3}^{\prime} \\ \boldsymbol{e}_{2}^T \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{2}^T \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{2}^T \boldsymbol{e}_{3}^{\prime} \\ \boldsymbol{e}_{3}^T \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{3}^T \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{3}^T \boldsymbol{e}_{3}^{\prime} \end{array}\right]\left[\begin{array}{c} a_{1}^{\prime} \\ a_{2}^{\prime} \\ a_{3}^{\prime} \end{array}\right] \stackrel{\text { def }}{=} \boldsymbol{R} \boldsymbol{a}^{\prime} \tag{2-5} ?a1?a2?a3?? ?= ?e1T?e1′?e2T?e1′?e3T?e1′??e1T?e2′?e2T?e2′?e3T?e2′??e1T?e3′?e2T?e3′?e3T?e3′?? ? ?a1′?a2′?a3′?? ?=?def?Ra′(2-5)
矩陣 R \boldsymbol{R} R即為旋轉(zhuǎn)矩陣。它有如下性質(zhì):
- R \boldsymbol{R} R 行列式為 1;
- R \boldsymbol{R} R 是一個(gè)正交矩陣,即滿足 R T R = I \boldsymbol{R}^T\boldsymbol{R}=\boldsymbol{I} RTR=I。
- 坐標(biāo)系 1 到坐標(biāo)系 2 ,有 a 1 = R 12 a 2 \boldsymbol{a_1}=\boldsymbol{R_{12}}\boldsymbol{a_2} a1?=R12?a2?,反之有 a 2 = R 21 a 1 \boldsymbol{a_2}=\boldsymbol{R_{21}}\boldsymbol{a_1} a2?=R21?a1?,其中,
R 12 = R 21 ? 1 = R 21 T \boldsymbol{R_{12}}=\boldsymbol{R_{21}}^{-1}=\boldsymbol{R_{21}}^T R12?=R21??1=R21?T
將滿足此性質(zhì)的矩陣集合定義為特殊正交群:
S O ( n ) = { R ∈ R n × n ∣ R R T = I , det ? ( R ) = 1 } (2-6) \mathrm{SO}(n)=\left\{\boldsymbol{R} \in \mathbb{R}^{n \times n} \mid \boldsymbol{R} \boldsymbol{R}^{\mathrm{T}}=\boldsymbol{I}, \operatorname{det}(\boldsymbol{R})=1\right\} \tag{2-6} SO(n)={R∈Rn×n∣RRT=I,det(R)=1}(2-6)
(4)旋轉(zhuǎn)加平移
可以將三維空間的剛體運(yùn)動(dòng)分解為平移以及旋轉(zhuǎn)運(yùn)動(dòng),滿足:
a ′ = R a + t (2-7) \boldsymbol{a^{\prime}}=\boldsymbol{Ra+t} \tag{2-7} a′=Ra+t(2-7)
(5)齊次坐標(biāo)與旋轉(zhuǎn)矩陣(參考機(jī)器人學(xué)中的坐標(biāo)變換)
為便于表達(dá),寫(xiě)成齊次形式
[ a ′ 1 ] = [ R t 0 T 1 ] [ a 1 ] = def? T [ a 1 ] (2-8) \left[\begin{array}{l} \boldsymbol{a}^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{ll} \boldsymbol{R} & \boldsymbol{t} \\ \mathbf{0}^{\mathrm{T}} & 1 \end{array}\right]\left[\begin{array}{l} \boldsymbol{a} \\ 1 \end{array}\right] \stackrel{\text { def }}{=} \boldsymbol{T}\left[\begin{array}{l} \boldsymbol{a} \\ 1 \end{array}\right] \tag{2-8} [a′1?]=[R0T?t1?][a1?]=?def?T[a1?](2-8)
其中, T \boldsymbol{T} T即為變換矩陣(注意左乘右乘區(qū)別)。
(繞靜坐標(biāo)系(世界坐標(biāo)系)旋轉(zhuǎn)即左乘,繞自身坐標(biāo)系旋轉(zhuǎn)即右乘)
這種形式的矩陣集合定義為特殊歐式群,即
S E ( 3 ) = { T = [ R t 0 T 1 ] ∈ R 4 × 4 ∣ R ∈ S O ( 3 ) , t ∈ R 3 } (2-9) \mathrm{SE}(3)=\left\{\boldsymbol{T}=\left[\begin{array}{ll} \boldsymbol{R} & \boldsymbol{t} \\ \mathbf{0}^{\mathrm{T}} & 1 \end{array}\right] \in \mathbb{R}^{4 \times 4} \mid \boldsymbol{R} \in \mathrm{SO}(3), \boldsymbol{t} \in \mathbb{R}^{3}\right\} \tag{2-9} SE(3)={T=[R0T?t1?]∈R4×4∣R∈SO(3),t∈R3}(2-9)
同樣地,逆方向的變換為:
T ? 1 = [ R T ? R T t 0 T 1 ] (2-10) \boldsymbol{T}^{-1}=\left[\begin{array}{cc} \boldsymbol{R}^{\mathrm{T}} & -\boldsymbol{R}^{\mathrm{T}} \boldsymbol{t} \\ \mathbf{0}^{\mathrm{T}} & 1 \end{array}\right] \tag{2-10} T?1=[RT0T??RTt1?](2-10)
2.2 旋轉(zhuǎn)向量和歐拉角
2.2.1 旋轉(zhuǎn)向量
(1)三維空間中剛體運(yùn)動(dòng)有六個(gè)自由度(旋轉(zhuǎn)和平移各三個(gè))。顯然無(wú)論是上述的旋轉(zhuǎn)矩陣(9個(gè)量)還是變換矩陣(16個(gè)量),都有很大的冗余;并且,矩陣中的元素相互關(guān)聯(lián),這不利于后續(xù)的非線性優(yōu)化計(jì)算。因此我們希望找到一種更為緊湊的表達(dá)方式。
(2)任意一個(gè)旋轉(zhuǎn)都可以用旋轉(zhuǎn)軸和旋轉(zhuǎn)角刻畫(huà),因此可以用旋轉(zhuǎn)向量(也稱為角軸或軸角)來(lái)表達(dá),即向量方向?yàn)樾D(zhuǎn)軸,其模長(zhǎng)為旋轉(zhuǎn)角。
(3)羅德里格斯公式描述了旋轉(zhuǎn)矩陣和旋轉(zhuǎn)向量之間的關(guān)系。
R = cos ? ( θ I ) + ( 1 ? cos ? θ ) n n T + sin ? ( θ n ∧ ) (2-11) \boldsymbol{R}=\cos (\theta\boldsymbol{I}) + \left( 1- \cos \theta\right) \boldsymbol{n} {\boldsymbol{n}}^T+\sin (\theta\boldsymbol{n}^{\wedge}) \tag{2-11} R=cos(θI)+(1?cosθ)nnT+sin(θn∧)(2-11)
反之,有
θ = a r c c o s ( t r ( R ) ? 1 2 ) (2-12) \theta=arccos(\frac{tr(\boldsymbol{R})-1}{2}) \tag{2-12} θ=arccos(2tr(R)?1?)(2-12)
t r ( R ) tr(\boldsymbol{R}) tr(R)表示求跡,即矩陣對(duì)角線元素之和。
由于旋轉(zhuǎn)軸在旋轉(zhuǎn)過(guò)程中是不動(dòng)的,則有
R n = n (2-13) \boldsymbol{R}\boldsymbol{n}=\boldsymbol{n} \tag{2-13} Rn=n(2-13)
這說(shuō)明 n \boldsymbol{n} n是矩陣 R \boldsymbol{R} R特征值為 1 對(duì)應(yīng)的特征向量,由此可以求出向量 n \boldsymbol{n} n的值。
2.2.2 歐拉角
(1)將旋轉(zhuǎn)分解為 X、Y、Z 三個(gè)方向上的轉(zhuǎn)動(dòng),常用的是 ZYX 順序的旋轉(zhuǎn):
- 繞 Z 軸旋轉(zhuǎn),得到偏航角 yaw;
- 繞旋轉(zhuǎn)后的 Y 軸旋轉(zhuǎn),得到俯仰角 pitch;
- 繞旋轉(zhuǎn)后的 X 軸旋轉(zhuǎn),得到滾轉(zhuǎn)角 roll。
此時(shí),使用 [ y , p , r ] T [y, p, r]^T [y,p,r]T這樣一個(gè)三維向量便可以描述任意旋轉(zhuǎn)。
(2)存在萬(wàn)向鎖問(wèn)題:即當(dāng)俯仰角為 ±90° 時(shí),第三次旋轉(zhuǎn)軸和第一次旋轉(zhuǎn)軸重合,使系統(tǒng)丟失了一個(gè)自由度,這被稱為奇異性問(wèn)題。因此歐拉角在 SLAM 中較少使用。
(3)旋轉(zhuǎn)向量也存在奇異性,當(dāng) θ \theta θ超過(guò) 2 π 2\pi 2π時(shí)會(huì)產(chǎn)生周期性,這時(shí)將其限定在 2 π 2\pi 2π范圍內(nèi)便可以避免。
2.3 四元數(shù)
2.3.1 四元數(shù)的定義
(1)2D 情況下,可用單位復(fù)數(shù)表達(dá)旋轉(zhuǎn),在復(fù)數(shù)平面中,結(jié)合歐拉公式,如下圖,向量 z \boldsymbol{z} z旋轉(zhuǎn) 90° ,相當(dāng)于乘上 i i i。
(2)類(lèi)似的,在三維空間中,采用四元數(shù)描述旋轉(zhuǎn)。四元數(shù)有一個(gè)實(shí)部,三個(gè)虛部(分別對(duì)應(yīng) x、y、z軸)。
q = q 0 + q 1 i + q 2 j + q 3 k (2-14) \boldsymbol{q} = q_0+q_1i+q_2j+q_3k \tag{2-14} q=q0?+q1?i+q2?j+q3?k(2-14)
寫(xiě)成向量形式
q = [ s , v ] , s = q 0 ∈ R , v = [ q 1 , q 2 , q 3 ] T ∈ R 3 (2-15) \boldsymbol{q}=[s, \boldsymbol{v}], s=q_0\in \mathbb{R},\boldsymbol{v}=[q_1,q_2,q_3]^T \in \mathbb{R}^3 \tag{2-15} q=[s,v],s=q0?∈R,v=[q1?,q2?,q3?]T∈R3(2-15)
并且,虛部之間滿足
{ i 2 = j 2 = k 2 = ? 1 i j = k , j i = ? k j k = i , k j = ? i k i = j , i k = ? j (2-16) \left\{ \begin{matrix} i^2=j^2=k^2=-1 \\ ij=k, ji=-k \\ jk=i, kj=-i \\ ki=j, ik=-j \end{matrix} \right. \tag{2-16} ? ? ??i2=j2=k2=?1ij=k,ji=?kjk=i,kj=?iki=j,ik=?j?(2-16)
(3)當(dāng)四元數(shù)的實(shí)部為 0 時(shí),稱為虛四元數(shù)(分別對(duì)應(yīng)三維坐標(biāo)),此時(shí),可以用來(lái)表示三維空間中的點(diǎn)。
2.3.2 四元數(shù)的計(jì)算
-
加法:對(duì)應(yīng)部分相加
-
乘法:每一項(xiàng)相乘,最后相加
-
模長(zhǎng):各項(xiàng)系數(shù)平方和再開(kāi)方;并且兩個(gè)四元數(shù)乘積的模等于各自模的乘積,即 ∣ ∣ q 1 q 2 ∣ ∣ = ∣ ∣ q 1 ∣ ∣ ? ∣ ∣ q 1 ∣ ∣ ||\boldsymbol{q_1}\boldsymbol{q_2}||=||\boldsymbol{q_1}||\cdot||\boldsymbol{q_1}|| ∣∣q1?q2?∣∣=∣∣q1?∣∣?∣∣q1?∣∣。
-
共軛:實(shí)部相等,虛部互為相反數(shù): q a ? = [ s a , ? v a ] T \boldsymbol{q_a^*}=[s_a, -\boldsymbol{v_a}]^T qa??=[sa?,?va?]T。并且, q ? q = q q ? = [ s 2 + v T v , 0 ] T \boldsymbol{q^*q}=\boldsymbol{qq^*}=[s^2+\boldsymbol{v^Tv}, \boldsymbol{0}]^T q?q=qq?=[s2+vTv,0]T
-
逆: q ? 1 = q ? / ∣ ∣ q ∣ ∣ 2 \boldsymbol{q^{-1}}=\boldsymbol{q^*}/{||\boldsymbol{q}||}^2 q?1=q?/∣∣q∣∣2,則 q ? 1 q = q q ? 1 = 1 \boldsymbol{q^{-1}}\boldsymbol{q}=\boldsymbol{q}\boldsymbol{q^{-1}}=1 q?1q=qq?1=1,同時(shí), ( q a q b ) ? 1 = q a ? 1 q b ? 1 (\boldsymbol{q_a}\boldsymbol{q_b})^{-1}=\boldsymbol{q_a}^{-1}\boldsymbol{q_b}^{-1} (qa?qb?)?1=qa??1qb??1
-
數(shù)乘: k q = [ k s , k v ] T k\boldsymbol{q}=[ks, k\boldsymbol{v}]^T kq=[ks,kv]T
2.3.3 四元數(shù)表示旋轉(zhuǎn)
(1)三維空間中任意點(diǎn)均可用一個(gè)純虛四元數(shù)表示即 p = [ 0 , v ] T \boldsymbol{p}=[0,\boldsymbol{v}]^T p=[0,v]T,經(jīng)一個(gè)單位四元數(shù) q \boldsymbol{q} q的旋轉(zhuǎn)后,得到 p ′ \boldsymbol{p'} p′,則
p ′ = q p q ? 1 (2-17) \boldsymbol{p'}=\boldsymbol{q}\boldsymbol{p}\boldsymbol{q^{-1}} \tag{2-17} p′=qpq?1(2-17)
最終 p ′ \boldsymbol{p'} p′的虛部即為旋轉(zhuǎn)后點(diǎn)的坐標(biāo)。
2.3.4 四元數(shù)與其他旋轉(zhuǎn)表示法的轉(zhuǎn)換
- 角軸到四元數(shù):
q = [ c o s θ 2 , n x s i n θ 2 , n y s i n θ 2 , n z s i n θ 2 ] (2-18) \boldsymbol{q}=[cos{\frac{\theta}{2}},n_xsin{\frac{\theta}{2}}, n_ysin{\frac{\theta}{2}},n_zsin{\frac{\theta}{2}}] \tag{2-18} q=[cos2θ?,nx?sin2θ?,ny?sin2θ?,nz?sin2θ?](2-18)
-
四元數(shù)到角軸
{ θ = 2 a r c c o s q 0 [ n x , n y , n z ] T = [ q 1 , q 2 , q 3 ] T / s i n θ 2 (2-19) \left\{ \begin{matrix} \theta=2arccos{q_0} \\ \\ [n_x, n_y, n_z]^T=[q_1, q_2, q_3]^T/sin{\frac{\theta}{2}} \end{matrix} \right. \tag{2-19} ? ? ??θ=2arccosq0?[nx?,ny?,nz?]T=[q1?,q2?,q3?]T/sin2θ??(2-19) -
四元數(shù)到旋轉(zhuǎn)矩陣
-
旋轉(zhuǎn)矩陣到四元數(shù)
2.4 相似、仿射、射影變換
歐式變換不改變向量本身,只是進(jìn)行旋轉(zhuǎn)或平移。
(1)相似變換
相似變換比歐式變換多了一個(gè)自由度,即相當(dāng)于在旋轉(zhuǎn)或平移后,各坐標(biāo)再進(jìn)行等比例縮放,表達(dá)式為
T s = [ s R t 0 T 1 ] (2-20) \boldsymbol{T}_s=\left[\begin{array}{ll} s\boldsymbol{R} & \boldsymbol{t} \\ \mathbf{0}^{\mathrm{T}} & 1 \end{array}\right] \tag{2-20} Ts?=[sR0T?t1?](2-20)
s s s為縮放因子。
(2)仿射變換
表達(dá)式如下:
T A = [ A t 0 T 1 ] (2-21) \boldsymbol{T}_A=\left[\begin{array}{ll} \boldsymbol{A} & \boldsymbol{t} \\ \mathbf{0}^{\mathrm{T}} & 1 \end{array}\right] \tag{2-21} TA?=[A0T?t1?](2-21)
這里不要求 A \boldsymbol{A} A為正交矩陣,因此,變換后,正方形就不是方的了,但仍是平行四邊形。
(3)射影變換
T P = [ A t a T v ] (2-22) \boldsymbol{T}_P=\left[\begin{array}{ll} \boldsymbol{A} & \boldsymbol{t} \\ \mathbf{a}^{\mathrm{T}} & v \end{array}\right] \tag{2-22} TP?=[AaT?tv?](2-22)
射影變換是最一般的變換,左上角 A \boldsymbol{A} A為可逆矩陣,右上角 t \boldsymbol{t} t為平移,左下角為縮放 a T \boldsymbol{a^T} aT。從真實(shí)世界到相機(jī)照片的變換可以看做是射影變換:原本正方形的地磚,在照片中將不再是方形,由于近大遠(yuǎn)小,甚至可能是不規(guī)則的四邊形。