四元數 \(h = a + bi + cj + dk\)
共軛: $ h^* = a -bi -cj -dk$
逆: $ h^ = \frac$
所以單位四元數的共軛等於他的逆
單位四元數(絕對值為1的四元數)若實部為cos(t),它的共軛作用是乙個角度為2t的轉動,轉軸為虛部的方向。
四元數的優點是:
只有單位四元數才能表示旋轉,所以在eigen中一般會有quaternion.normialzed()
進行歸一化的處理
任給乙個單位四元數q,計算它的虛部,我們就馬上可以知道轉軸是什麼,計算乙個單位四元數的實部,它的反余弦值給出旋轉角的一半。在四元數表示下,計算轉軸和旋轉角變得異常簡單。
當我們使用旋轉軸加上旋轉角表示旋轉的時候,我們定義如下
\(v =u \theta\) , u是單位向量,\(\theta = ||v||\)
並且由泰勒展開,我們有, \(e^v = e^ = cos\theta + usin\theta\)
記住乙個繞軸u旋轉\(\theta\)角度的旋轉,表示成四元數的時候是做兩次旋轉,對應的q是\(cos(\frac ) + u sin(\frac )\) = \(
\begin
cos(\frac ) \\
u sin(\frac ) \\
\end\)
\[x^ = q \bigotimes x \bigotimes q^ = rx
\]對應的當我們旋轉很小的角度,\(\theta\) --> 0的時候,我們對上面的矩陣和e函式求近似值,有
對時間求微分
\[\frac = lim \frac
\]代入就有
\]看上面的公式,角速度在不同的座標系表示下,乙個是乘在左邊的乙個是在右邊的,如果把右邊的乙個r乘過去,
\[\dotr(t)^t = \phi(t)^\wedge
\]這個是不是很熟悉,就是李群和李代數之間的變換關係。
在下面的那篇**中可以證明,
說明李群中對應的skew-matrix不是隨便選取的(不是只要滿足反對成矩陣的性質),是有一定的方法。\(\omega\)又叫做rotation vector. encodes the angle and axis of rotation
在一段時間內\([t_n,t_]\),\(\dot \omega =0\),
上面的左邊就是\(e^\),根據上面說的這個指數對應的旋轉角是\(w_n \delta t\),所以有,
\[q(n+1) = q(n) \bigotimes q\
\]這樣我們就有了相鄰時刻的四元數關係,上面的所有公式都可以在下面的**找到。
quaternion kinematics for the error-state kalman filter
四元數的學習筆記
在平時的開發中,經常會遇到旋轉的操作,也因此經常會接觸到四元數的相關概念。但是,這個概念說難不難,但是理解起來也挺費勁的。我經常會使用到四元數,但是每次使用時都會查資料,當時理解了概念,但是過兩天又忘記了,當再次使用的時候,又要重新查資料。挺蛋疼。於是就寫一篇部落格,關於四元數,算是加強印象。先放一...
四元數乘法 剛體旋轉中的四元數
四元數博大精深,用途之一圖形學中的三維旋轉。單純從應用角度考慮,四元數可以以如下方式應用於旋轉。旋轉示意圖 假定我們有乙個經過原點的旋轉軸 其中 則,3d旋轉可以通過四元數乘法來表示 1 其中,為單位四元數,等價於 和 分別為 的共軛和逆。對於單位四元數而言 根據式 1 結合四元數的乘法,可以完成一...
視覺SLAM筆記(12) 四元數
3.旋轉表示 4.旋轉矩陣轉換 旋轉矩陣用九個量描述三自由度的旋轉,具有冗餘性 尤拉角和旋轉向量是緊湊的,但具有奇異性 事實上,找不到不帶奇異性的三維向量描述方式 這有點類似於,當想用兩個座標表示地球表面時 如經度和緯度 必定存在奇異性 緯度為 90 時經 度無意義 三維旋轉是乙個三維流形,想要無奇...