羅德里格斯公式推導


羅德里格斯(Rodrigues)旋轉方程

 

此公式有2種形式,故而也有2種推導方法。具體的推導過程如下

 

一、條件

定義向量k是旋轉軸的單位矢量,圖中初始向量v繞k軸旋轉Θ角得vrot

二、說明

所謂推導旋轉方程,實則求出一個旋轉矩陣R,使得vrot=Rv。所以我們要做的就是找出vrot與v之間的關系,並用矩陣來表示。

三、推導

1. 推導一

對v進行向量分解: v = v+ v//

由點乘的投影幾何意義可得: v// = (v • k)k         (v•k為標量,所以再乘k得到一個矢量)

根據向量減法可得:   v= v - v// 

由旋轉過程平行向量不變得:  vrot //= v//

為計算方便,對vrot⊥進行向量分解:vrot⊥=a+b

由圖中的向量關系經推導可得:b= cosΘ v      a=sinΘ k x v   (推導在文章末尾

綜上可得:vrot = vrot⊥+vrot //

        = a + b + v//

        = sinΘ k x v  + cosΘ v⊥ + (v • k)k

        = sinΘ k x v  + cosΘ (v - v//)+ (v • k)k

        = sinΘ k x v  + cosΘ (v - (v • k)k)+ (v • k)k

        = cosΘ v + (1 - cosΘ )(v • k)k + sinΘ k x v

顯然:到此步,我們還無法將其用矩陣來表示,所以需要對 (v • k)k 和 k x v 進行矩陣轉換

由結合律和點乘的交換律得(v • k)k=k •(v • k)=k • (kτ • v)=k•kτ•v  ,其中的向量都是列向量

對於k x v可用叉乘矩陣來化簡為Kv

 

所以,cosΘ v + (1 - cosΘ )(v • k)k + sinΘ k x v

   = cosΘ v + (1 - cosΘ )kkτv + sinΘKv

   =( cosΘ I + (1 - cosΘ )kkτ + sinΘK ) v                  

     =Rv

所以,旋轉矩陣R=cosΘ I + (1 - cosΘ )kkτ + sinΘK,其中I為單位矩陣。

 

2.推導二

與推導一相比,推導二的不同主要在於用叉乘去表示一些數據

用叉乘來表示v可得:v= -k x (k x v)

所以聯立推導一中各式得: vrot = vrot⊥+ vrot //

              = a + b + v//

              = sinΘ k x v  + cosΘ v⊥ + v - v

              = sinΘ k x v - cosΘk x (k x v) + v + k x (k x v)

              = v + (1 - cosΘ)k x (k x v) + sinΘ k x v

              = v + (1 - cosΘ)K2v + sinΘ Kv     (叉乘矩陣表示)

              =(I +  (1 - cosΘ)K2 + sinΘ K) v

              =Rv

從而得出第二種表達式R=I +  (1 - cosΘ)K2 + sinΘ K

顯然,第二種表達式更為簡便,在計算的過程中涉及的參數更少,所以這也是在進行旋轉操作時常用的公式。

 

關於a和b的推導

a和b是由Vrot⊥正交分解得到的矢量,既有大小又有方向,所以在求解時,我們要對其大小和方向分別求解。
一、b的求解
1.大小
由圖得:|b| = cosΘ' |Vrot⊥| ( Θ'為b和Vrot⊥的夾角 )
又因為|Vrot⊥| = |V⊥| ,Θ'=PI - Θ
所以:|b| = cos(PI - Θ) |V⊥| = (- cosΘ)|V⊥|

2.方向
由b的方向與V⊥方向相反可得
b的單位方向向量為:-V⊥ / |V⊥|
綜上可得:b= (-V⊥ / |V⊥| ) |b| = cosΘV⊥

二、a的求解
1.大小
|a| = sinΘ' |Vrot⊥| = sinΘ' |V⊥| = sin(PI-Θ) |V⊥| = sinΘ|V⊥|
= sinΘsinΘ''|V| (Θ''為V和k的夾角)
= sinΘsinΘ''|V| |K| (因為 |K|=1,所以可直接加上)
其中sinΘ''|V| |K| = |K x V|
所以:|a| = sinΘ |K x V|

2.方向
由叉乘方向可得a的單位方向向量為
K x V / |K x V|
綜上可得:a=(K x V / |K x V|) sinΘ |K x V| = sinΘ K x V


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM