萬向鎖(Gimbal Lock)
定義
萬向鎖(Gimbal Lock)是用尤拉角描述三維旋轉時出現的退化現象:當三個連續旋轉中的中間那一軸轉到 ±90 度,第一個與第三個旋轉軸會重合,原本三個獨立的旋轉自由度只剩兩個,某個方向的旋轉就再也無法透過微調角度做到。
直覺理解
想像飛機的偏航(yaw)、俯仰(pitch)、滾轉(roll)。當機頭垂直朝上(pitch = 90°)時,「左右轉機頭」和「沿機身滾轉」變成繞同一根軸轉,兩個旋鈕做的是同一件事——這就是「鎖住」的意思。
數學表示
以 ZYX 尤拉角為例,旋轉矩陣為 。當 時:
矩陣只依賴 這個差值, 與 不再能各自獨立影響姿態,自由度從 3 降成 2。
使用情境
- 機器人姿態控制:末端執行器若用尤拉角做誤差回授,接近奇異姿態時控制量會暴衝。
- 無人機與 IMU 姿態估測:飛控韌體內部多以四元數積分角速度,避免大角度機動時失效。
- 3D 動畫與遊戲引擎:骨骼旋轉插值改用四元數球面插值(slerp)。
- 歷史案例:阿波羅登月艙的慣性導航平台使用實體萬向環,任務中曾出現接近萬向鎖的警報。
常見誤解
- 不是硬體故障:萬向鎖是姿態「表示法」的數學性質,換成四元數就不存在。
- 不等於機構奇異點:機械手臂的運動學奇異點來自機構本身,跟用什麼方式描述姿態無關。
延伸閱讀
常見問題
- 萬向鎖、萬象鎖、gimbal lock 是同一件事嗎?
- 是同一件事。gimbal 指萬向環(萬向節),標準中文譯名是「萬向鎖」,「萬象鎖」是常見的同音誤寫。
- 怎麼避免萬向鎖?
- 最常見的做法是在內部計算改用四元數或旋轉矩陣表示姿態,只在顯示給人看時才轉成尤拉角。四元數沒有這種奇異點,插值也比較平滑。
faq_01.log
faq_02.log