四元數的常見運算

2021-09-26 18:19:55 字數 2771 閱讀 5502

假設四元數虛部在前,實部在後

四元數和旋轉向量有很直接的轉換關係。繞單位軸u

uu轉了θ

\theta

θ角度,用四元數表達為:

q =[

usin⁡θ

2cos⁡θ

2]

\mathbf=\left[\mathbf \sin \frac \quad \cos \frac\right]

q=[u

sin2θ​

cos2θ​]q⊗

p=[q

4i3+

vq∧v

q−vq

tq4]

[vpp

4]=[

p4i3

−vp∧

vp−v

ptp4

][vq

q4

]\begin \mathbf \otimes \mathbf &=\left[\begin \mathbf_+v_^} & } \\ ^} & }\end\right]\left[\begin} \\ }\end\right] \\ &=\left[\begin \mathbf_-v_^} & } \\ ^} & }\end\right]\left[\begin} \\ }\end\right] \end

q⊗p​=[

q4​i

3​+v

q∧​−

vqt​

​vq​

q4​​

][vp

​p4​

​]=[

p4​i

3​−v

p∧​−

vpt​

​vp​

p4​​

][vq

​q4​

​]​注:上式分別代表了左乘和右乘

r ˙=

ω∧

r\dot}=\boldsymbol^ \mathbf

r˙=ω∧r

注:這裡速度w是參考係下的角速度

r ˙=

r(bω

)∧

\dot}=\mathbf\left(^ \omega\right)^

r˙=r(b

ω)∧注:這裡速度是體座標系的角速度

比較一下上述兩式,可以發現乙個很有趣的事實,角速度如果表達在參考座標系下,負對稱矩陣寫在左邊;如果表達在體座標系下,負對稱矩陣寫在右邊。這點微小的區別,讀者在閱讀文獻時可以特別留意。

q˙=

12[ω

∧ω−ω

t0]q

:=12

ω(ω)

q=12

[q4i

3−v∧

−vt]

ω\begin \dot} &=\frac\left[\begin^} & } \\ ^} & \end\right] \mathbf :=\frac \boldsymbol(\boldsymbol) \mathbf \\ &=\frac\left[\begin \mathbf_-\boldsymbol^} \\ ^}\end\right] \boldsymbol \end

q˙​​=2

1​[ω

∧−ωt

​ω0​

]q:=

21​ω

(ω)q

=21​

[q4​

i3​−

v∧−v

t​]ω

​注:四元數的求導公式和旋轉矩陣的求導很像,且這裡面的w也是在參考座標系下的測量。若w是在體座標系下的測量(如imu的測量值),則公式變為:

q ˙=

12[−

ω∧ω−

ωt0]

q:=1

2ω(ω

)q=1

2[q4

i3+v

∧−vt

\begin \dot} &=\frac\left[\begin^} & } \\ ^} & \end\right] \mathbf :=\frac \boldsymbol(\boldsymbol) \mathbf \\ &=\frac\left[\begin \mathbf_+\boldsymbol^} \\ ^}\end\right] \boldsymbol \end

q˙​​=2

1​[−

ω∧−ω

t​ω0

​]q:

=21​

ω(ω)

q=21

​[q4

​i3​

+v∧−

vt​]

ω​四元數乘法和其對應的兩個旋轉矩陣相乘物理意義是一樣的,即:

r (q

⊗p)=

r(q)

r(p)

\mathbf(\mathbf \otimes \mathbf)=\mathbf(\mathbf) \mathbf(\mathbf)

r(q⊗p)

=r(q

)r(p

)四元數對應的旋轉矩陣為:

r (q

)=(2

q42−

1)i3

+2q4

v∧+2

vv

t\mathbf(\mathbf)=\left(2 q_^-1\right) \mathbf_+2 q_ \boldsymbol^+2 \boldsymbol \boldsymbol^

r(q)=(

2q42

​−1)

i3​+

2q4​

v∧+2vvt

四元數乘法 剛體旋轉中的四元數

四元數博大精深,用途之一圖形學中的三維旋轉。單純從應用角度考慮,四元數可以以如下方式應用於旋轉。旋轉示意圖 假定我們有乙個經過原點的旋轉軸 其中 則,3d旋轉可以通過四元數乘法來表示 1 其中,為單位四元數,等價於 和 分別為 的共軛和逆。對於單位四元數而言 根據式 1 結合四元數的乘法,可以完成一...

四元數的筆記

四元數 h a bi cj dk 共軛 h a bi cj dk 逆 h frac 所以單位四元數的共軛等於他的逆 單位四元數 絕對值為1的四元數 若實部為cos t 它的共軛作用是乙個角度為2t的轉動,轉軸為虛部的方向。四元數的優點是 只有單位四元數才能表示旋轉,所以在eigen中一般會有quat...

四元數左乘右乘 四元數的建立

在了解了上述知識後,我們就不需要那麼懼怕四元數了,實際上它和矩陣類似,不同的只是它的表示方式以及運算方式。那麼在unity裡如何利用四元數進行旋轉呢?unity裡提供了非常多的方式來建立乙個四元數。例如quaternion.angleaxis float angle,vector3 axis 它可以...