先複習以前寫過的相關文章:
- 三維空間旋轉
- 關於三維空間轉換的更多筆記
- Quaternion 四元數簡介
- 李群、李代數與三維空間旋轉 Lie Group & Lie Algebra
- SO(3) 上的李代數求導數
- 三維空間轉換與李理論(一)
本文將以參考資料 [1, 2] 的內容為基礎整理出一份完整的筆記。
利用 Pose 轉換一個三維空間中的點
假設 pose 為 p、點為 a′,則轉換後的點 a=p⊕a′。
- 3D+YPR pose:先轉換成 4×4 矩陣再計算新的點 a。
- 3D+YPR pose covariance:(Eq. 7)
cov(a)=∂f(p6,a)∂p6cov(p6)∂f(p6,a)∂p6T+∂f(p6,a)∂acov(a′)∂f(p6,a)∂aT∂f(p6,a)∂p63×6=(I3J)∂f(p6,a)∂a3×3=R(ϕ,χ,ψ)其中 f(p6,a) 為 p⊕a′,J 的細節在 [1] 的式 (3.3) 中。上面的第三式其實就是 a=Ra′+t,再對 a′ 偏微分的結果。
- 3D+Quat pose:定義 p7=[x,y,z,qr,qx,qy,qz],且 a=p7⊕a′=f(p7,a′)。(Eq. 8)
f(p7,a′)=[x+a′x+2[−(q2y+q2z)a′x+(qxqy−qrqz)a′y+(qrqy+qxqz)a′z]y+a′y+2[(qrqz+qxqy)a′x−(q2x+q2z)a′y+(qyqz−qrqx)a′z]z+a′z+2[(qxqz−qrqy)a′x+(qrqx+qyqz)a′y−(q2x+q2y)a′z]]
- 3D+Quat pose covariance:(Eq. 9),過程即為將 (Eq. 8) 計算 jacobian。 cov(a)=∂f(p7,a)∂p7cov(p7)∂f(p7,a)∂p7T+∂f(p7,a)∂acov(a′)∂f(p7,a)∂aT∂f(p7,a)∂p73×7=[100010∂f(p7,a)∂[qr,qx,qy,qz]001]∂f(p7,a)∂[qr,qx,qy,qz]=∂f(p7,a)∂q′∂q′∂q其中 ∂f(p7,a)∂q′ 於 [1] 中的式 (3.9) 有結果, ∂f(p7,a)∂a 於 [1] 中的式 (3.10) 有結果。
利用 Pose 轉換反推一個三維空間中的點
前一段介紹的是 a=p⊕a′,而本節為相反的操作 a′=a⊖p。大致上內容與前一段差不多,細節都在 [1] 中的第四章。
參考資料
[2] A micro Lie theory for state estimation in robotics
沒有留言:
張貼留言