四元數應用思路分析

任務

在對四元數的基本運算有所瞭解後,迫切想知道到底如何應用。

在蒐集資料、觀看視頻後,腦中大致浮現輪廓,記錄下來。

爲什麼是四元數(Why)?

正如我們所處是一個三維的世界,我們的主要應用也集中在三維。而四元數其實有四個維度,但在各種其相關的應用卻仍然是三維的。
原因是這樣的:
這篇文章中四元數——旋轉提到:四元數滿足賦範可除代數的性質——兩個數相“乘”後的模長等於分別模長的乘積。而這正符合我們對旋轉的定義,改變一個物體的姿態而不改變大小
通過之前推導的四元數的旋轉公式也可知道,用四元數表達旋轉的形式很簡潔方便。
胡爾韋茲定理

四元數能幹什麼(What)?

計算機圖形學

Computer Graphic
這是一個應用廣泛的學科,它的主要應用也正是我聯想到的四元數的用途:

1.計算機輔助設計(CAD)

工科都要學習的一門課程——工程製圖,現代的教學設計的上機實驗要求我們使用軟件:Inventor、Auto CAD等等,在3D建模時,涉及到物體的旋轉。
在使用時,我們通過按住鼠標的滾輪或其他熱鍵操作可以實現物體如我們期待的旋轉。但其本質需要軟件對物體的旋轉動作進行平滑處理,並圖像顯示。

如下是在同學的協助下使用CAD繪製的檯燈立體圖像:

檯燈

2. 計算機動畫(Animation)

以下是百度百科中的解釋,也解釋了一直在我腦海中的謎團:動畫片是如何製作的?

傳統的動畫片都是手工繪製的。由於動畫放映一秒鐘需要24幅畫面,故手工繪製的工作量相當大。而通過計算機制作動畫,只需生成幾幅被稱作“關鍵幀”的畫面,然後由計算機對兩幅關鍵幀進行插值生成若干“中間幀”,連續播放時兩個關鍵幀被有機地結合起來。這樣可以大大節省時間,提高動畫製作的效率。

根據這個思路,二維的動畫只需要對某個圖像(如人物)進行平移,並在變換姿態時變換圖像。
三維的動畫則需要對某個物體的姿態改變平移和旋轉進行平滑過渡。

3.計算機遊戲

這個大家容易想象,也和計算機動畫相仿,而在b站中搜得的視頻中正有Unity關於四元數的應用。Unity是開放3D遊戲的平臺,之前在很多地方看到過它的身影。
限於資源缺乏,我基本把所有關於四元數的相關視頻閱盡,下面是比較關鍵的視頻:
關於Unity中的四元數( quaternions )歐拉角 (Euler angles )萬向鎖 (gimbol lock)

位姿估計

除了計算機的仿真工作,四元數同時應用於現實領域。

SLAM

第一次接觸四元數的場景,旋轉公式對實體進行監測——通過傳感器獲取剛體的系列參數。利用卡爾曼濾波公式對剛體的姿態進行估計,亦即實現定位(Location).

這是我下一步要學習瞭解的方向,暫時對這方面的知識沒用很直觀的感受,因此也只能淺談。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章