四元數與姿態陣間的關係式推導

2021-07-22 20:44:01 字數 3775 閱讀 7671

—–下文摘自秦永元的《慣性導航》第二版

設有參考座標系r 

,座標軸x0

、y 0

、z 0

,座標軸方向的單位向量為i0

、j0、

k0。剛體相對r 

系做定點轉動,定點為o 

。取座標系b 

與剛體固聯,b 

系的座標軸為x、

y、z ,座標軸方向的單位向量為i、

j、k 

。假設初始時刻b 

系與r 

系重合。為了便於分析剛體的空間位置,剛體上取一點a 

,轉動點o 

至該點引位置向量oa

,如下圖所示:

設剛體以ω=

ωxi+

ωy j

+ωz 

k 相對 r 

系旋轉,初始時刻位置向量處於oa

=r經過時間 t 後位置向量處於oa

′=r′

。根據尤拉定理,僅考慮剛體在 0 時刻和 t 時刻的角位置時,剛體從a 

位置轉到a′

位置的轉動可等效成繞軸u 

(單位向量)轉過θ 

角一次完成這樣,位置向量做圓錐運動,a 

和a′位於同一圓上,r 

和r′位於同一圓錐上。

下面分析r 

和r′的關係。在圓上取一點b 

使∠ao

′b=90

° ,有上圖可得: oo

′=(r

∙u)u

o′a=r−

oo′=

r−(r

∙u)u

o′b=u×

o′a=

u×r−

(r∙u

)u=u

×r 

o′a′

=o′a

cosθ

+o′b

sinθ

=rco

sθ−(

r∙u)

ucos

θ+u×

rsin

θ 所以 r′

=oo′

+o′a

′=rc

osθ+

(1−c

osθ)

×(r∙

u)u+

u×rs

inθ 

由向量三重積計算公式: u×

(u×r

)=u(

u∙r)

−(u∙

u)r=

(r∙u

)u−r

即 (r∙u)

u=r+

u×(u

×r) 

所以 r′

=rco

sθ+(

1−co

sθ)[

r+u×

(u×r

)]+u

×rsi

nθ=r

+u×r

sinθ

+(1−

cosθ

)u×(

u×r)

將上式向r 

系內投影: r′

r =r

r+(u

×r)r

sinθ

+(1−

cosθ

)[u×

(u×r

)]r記

又根據叉乘關係表示式

u×r)

r=ur

r [u

×(u×

r)]r

=u∙u

rr所以 r′

r =r

r+ur

rsin

θ+(1

−cos

θ)u∙

urr=

(i+2

usin

θ2co

sθ2+

2sin

2θ2u

∙u)r

r  令

d=i+

2usi

nθ2c

osθ2

+2si

n2θ2

u∙u

則有: r′

r =d

rr記初始時刻的剛體固聯座標係為b0

,由於初始時刻剛體固聯座標系與參考座標系重合所以rr

=rb0

而在轉動過程中,位置向量和 b 

系都同剛體固聯,所以位置向量和b 

系的相對角位置始終不變,即有: rr

=r′r

=dr′b 

該式說明d 

即為b 係至

r 系的座標變換矩陣。 c 

rb=i

+2us

inθ2

cosθ

2+2s

in2θ

2u∙u

0q 1q 2

q 3 構造四元數: q=

q 0+

q 1i

0+q 

2j0+

q 3k

0=co

sθ2+

(li0

+mj0

+nk0

)sin

θ2=c

osθ2

+urs

inθ2

則可得如下結論:

四元數q=c

osθ2

+urs

inθ2

描述了剛體的定點轉動,即當只關心b 

系相對r 

系的角位置時,可認為b 

系是由r 

系經過無中間的一次性等效旋轉形成的,q 

包含了這種等效旋轉的全部資訊:ur

為旋轉瞬時軸和座標變換矩陣,θ 

為轉過的角度。

四元數可以確定b

係至r系的座標變換矩陣。

1 ,所以可以進一步推得如下結論:

(1)描述剛體旋轉的四元數是規範化四元數。

(3)如果將向量rr

和rb看作零標量的四元數,則rr

和rb間的變換關係可採用四元數乘法表示:rr

=q⊗r

b⊗q∗

該式稱為座標變換的四元數表示法,其中q 

為r 至b

系的旋轉四元數。座標變換的矩陣表示法為:rr

=c rbrb

對四元數解算姿態的理解

問題 為什麼不用尤拉角來表示旋轉而要引入四元數呢?前面介紹了什麼是尤拉角,而且尤拉角微分方程解算姿態關係簡單明瞭,概念直觀容易理解,那麼我們為什麼不用尤拉角來表示旋轉而要引入四元數呢?一方面是因為尤拉角微分方程中包含了大量的三角運算,這給實時解算帶 來了一定的困難。而且當俯仰角為90度時方程式會出現...

四元數與旋轉關係

1 圍繞乙個軸旋轉的quaternion如何從幾何意義上去思考 圍繞軸旋轉函式 fromangleaxis ngle,rkaxis quaternion identity 預設狀態下的xyz軸資訊 x 紅色,y 綠色,z 藍色 ogre quaternion quat quat.fromanglea...

四元數姿態解算c語言例程 交換位置的四元數

四元數和尤拉角 旋轉矩陣都是描述姿態的一種方式。個人不怎麼使用四元數,一般會將四元數修改為旋轉矩陣和齊次變換矩陣的旋轉部分然後進行操作。但是,在開發和科研中發現,如果能夠對四元數表示的姿態有乙個大概的認識,則在 編寫中可以直觀的防止相關轉換錯誤 如果能夠知道常用的四元陣列表達的位置,以及通過交換四元...