在Zemax OpticStudio中設計給擴增實境系統使用的頭戴型顯示器 (Head-Mounted Display,HMD)


在Zemax OpticStudio中設計給擴增實境系統使用的頭戴型顯示器 (Head-Mounted Display,HMD)

Author
Message
Zemax_Taiwan
Zemax_Taiwan
Forum Member
Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)Forum Member (1K reputation)

Group: Administrators / Zemax Staff
Posts: 214, Visits: 2.5K
摘要:本文章示範如何設計一個利用楔型稜鏡以及自由曲面,給HMD使用的序列模式光學系統。
原文連結:Designing a Head- Mounted Display (HMD) for Augmented Reality Systems in Zemax OpticStudio
原文作者:Natalie Pastuszka
原文發布時間:Aug 18, 2015
文章附件:檔案下載

流程摘要
1. 瞭解你的系統需要什麼,並決定設計策略。
2. 定義一階規格、效能規格等。
3. 藉由瞭解你的設計將怎麼被應用,可以幫助你知道規格應該怎麼制定。
4. 你會需要設定多重組態
5. 將你要設計物理系統畫出來,幫助思考你的設計策略
6. 需要思考的重點:需要多少個面?怎麼排列?物/像面的位置?要使用局域/全域座標設計?設計是否為旋轉對稱?你會使用什麼型態的元件?要用到幾個視場?…等等
7. 設定稜鏡時,一次插入一個面,並且僅追跡一條光線。
8. 你的初始設置只需要從視場角度追跡一條主光線,並能正確通過系統就可以了。
9. 需要的話,插入更多面以及適當的Coordinate Break來瞄準光線 (Ray-Aiming)。
10. 考慮設計的外型,決定每個面要用什麼材料。
11. 確定光是在哪個材料中行進,判斷材料要設定 “MIRROR” 還是PMMA。
12. 因為序列模式的特性,TIR面這類會被光線重複使用的面需要分開設定兩個面,然後讓兩個面重疊,並利用拾取求解 (Pickup Solve) 來讓兩個面的性質、外型一樣。
13. 優化目前的系統 (第一光路:微型顯示器投影)。
14. 使用多重組態建立設計中的第二光路。
15. 優化全系統,以符合效能規範,並且優化時考慮製造方法
16. 根據你的製造方法,可能有考慮一下表面的矢高起伏以及曲率變化會比較好。



介紹
頭戴型顯示器利用了虛擬或擴增實境的技術,能被應用在手術時顯示醫療資訊上,或是應用在軍隊戰鬥時,顯示戰略資訊上。虛擬實境讓使用者完全沉浸在人造的環境之中,而擴增實境的目的則是在既有視野基礎上,把電腦影響重疊上去,進而增強使用者所接收到的資訊。其中一種常見的技術就是光學可視穿顯示器 (optical see through head-mounted display,簡稱 OST – HMD)。這種顯示器的光路共有兩個需要優化設計,分別是微投影成像以及視穿路徑。
在規劃這類結構時,很重要的是,我們需要設計一個輕薄、不干擾觀看、廣視角又低f-number的系統。自由曲面提供了更多的自由度,讓系統能用更少的元件完成,進而減輕重量。此文章將說明如何模擬一個使用自由曲面楔型稜鏡的這類系統,並說明如何以一個膠合的輔助透鏡來校正視穿路徑上的畸變並改進視穿光路的效能。


參考專利資訊
此設計的基本概念參考自美國專利 US 2014/009845 A1 (http://www.google.com.ar/patents/US20140009845) 。此類光學系統需要大量的離心以及傾斜,請參考知識庫中相關文章。
http://forum.zemax.com/Uploads/Images/ea049bd2-9669-4beb-84b2-3ba6.png
1 可視穿頭戴顯示器,包含一個自由曲面稜鏡,以及一個膠和輔助透鏡 (圖中顯示為黃色)。此圖來自於專利並有修改過。


設計策略
可視穿頭戴顯示器包含了兩個元件:(1) 楔型自由曲面稜鏡、以及 (2) 膠合輔助透鏡。我們首先會設計自由曲面稜鏡並優化,設計將依據微投影路徑 (第一光路) 的規範來優化。之後,我們會透過多重組態來加入輔助透鏡 (第二光路),目標是最小化畸變以及去除屈光力。
此系統是以 “反向” 的方式模擬的,光路線會跟實際上的相反。在現實中 (合乎物理規則的系統),我們的光源是頭戴顯示器中的微型螢幕,並且影像面是眼球中的視網膜 (穿戴顯示器的出瞳正好是眼球的入瞳)。然而,要在 Zemax OpticStudio (簡稱ZOS) 中模擬準確這樣的架構並有效率的優化,穿戴顯示器的出瞳會在ZOS中被模擬為入瞳,而微型顯示是則被模擬為系統的 “像面”。因此,所以在這篇文章中談到的任何光線方向,指的都是他們在ZOS中模擬時的情況。


楔型自由曲面稜鏡
初始設計我們使用6 mm的入瞳 (人眼的瞳孔約 2 – 8 mm) 以及一個視場,主要先把所有的表面都設定好,讓光線可以基本簡單的通過系統。當表面都設定完成,並且光線可以正確的追跡通過系統後,我們就可以逐漸的擴大視野跟入瞳 (下面的 “定義視野 FOV” 會有更多的說明)。
在序列模式中,我們把稜鏡拆解為許多獨立的表面來設計,每個表面都有各自的傾斜與離心,最後構成稜鏡的形狀。要這樣設定,必須能考量光線如何通過稜鏡,進而決定曲面的擺放位置。下圖2顯示了光線穿過系統時的方向,以及面的編號,作為設定系統時的參考。
http://forum.zemax.com/Uploads/Images/fe77fa7f-f4f3-425d-88ac-e0f7.png
圖2 零度主光線追跡通過系統的初步設定 (尚未優化)。下面顯示了對應的LDE設定,


在圖2中,紅色放大粗體的數字代表了該表面在LDE中對應的表面編號。相關的Coordinate Break也包含在內,而黑色的 “S#” 則代表了該稜鏡實際的表面編號,此數字定義來自於前述了專利文件 (這些編號也被註記在LDE中的 “Comment” 欄位)。
舉例來說,8-9-10代表的是LDE中編號第9的面 (上圖LDE鐘用紅色框框圈選的部分),其對應到的是實際稜鏡的S1’表面 (光線在此面內側全反射)。而圖2中字體比較小的8跟10則對應到LDE中的表面8與表面10,這兩個面都是表面9的Coordinate Break (是虛擬的面,用途是傾斜或離心)。
此系統中,我們把STOP (我們的入瞳) 設定為全域座標參考 (global coordinate reference)。此稜鏡的表面1 (LDE中的S1或S3) 位在STOP之後18.25 mm (LDE中表面1的厚度Thickness設定) 的位置,這代表我們的適眼距 (Eye Relief)。
接下來我們需要設定每個面各自的傾斜/離心,這樣才能把光線導向像面。傾斜與離心的初始設定可以參考專利中的圖片以及設計參數。此系統中,光線穿透表面S1 (LDE中的面3),到達S2 (代表LDE中的面5)。此面的被設定為鏡面,讓光線在稜鏡內到達此面時走反射路徑。而在專利文件中,此面會用鍍膜方式處理,光線在此面上是一半穿透一半反射,以讓微顯示器的光路以及外部影像視穿的光路可以同時發生。
關於視穿光路則會文章稍後在多重組態中設定。我們可以再次利用 Tilt/Decenter工具來根據專利圖像的內容傾斜表面。此表面現在在LDE中成為了第6面,因為前面有許多的Coordinate Break表面。
http://forum.zemax.com/Uploads/Images/e95c5212-125f-4b5a-a7d5-9c0d.png
圖3 光線逆向進入系統,從眼睛出發,最終目標是微型顯示器,也就是我們模擬時的像面。

*注意事項1:為了更清楚看到光線應該走的路線,上圖中我們把微型顯示器像面放在跟專利差不多的位置。這樣讓我們對於稍後的設定會更有概念。
*注意事項2:為了視覺化的目的,上圖中我們設定不要畫出系統邊緣 (設定的位置在Surface Properties > Draw > 勾選 “Do Not Draw Edges From This Surface” )

看過上面的布局圖後,我們知道光線接下來應該在S1 (也就是S1’) 上面反射。根據專利,這些光線也可以設計為在此表面全反射。文章下面有更多關於全反射的說明。在序列模式中,設定全反射的方法是把S1’的材料指定為MIRROR,代表以鏡面方式處理。S1’上其他的參數則透過Pickup求解設定要複製S1 (LDE中的面3) 的數值,因為他們其實是同一個面。我們分別在LDE中用兩個面去定義物理上同一個面是因為序列模式中光線追跡是 “序列式” 的,而光線會在不同的狀況下經過此面兩次 (第一次是從空氣中穿透進入稜鏡,第二次在稜鏡內此面上反射)。下面LDE的截圖說明了我們如何使用Pickup求解複製面3的參數到面9上。

在像面之前的最後一面 (S3,也就是LDE中的面12),也跟之前的面一樣,透過一對Coordinate Break來設定需要的X傾斜以及Y離心。
http://forum.zemax.com/Uploads/Images/4eeb314c-2247-4522-ae92-52a3.png
4 初步光線追跡通過稜鏡的系統圖。此系統尚未優化並且顯示每個面之間的傾斜/離心關係。


定義視野 (FOV)
系統的FOV必須定義盡可能多的視場 (Field),因為自由曲面會因為指定的視場而有不同變化。適當的設定可以讓ZOS更有效率的優化中間視場。此外, X與Y方向上的視場點都需要同時定義。因為此系統不是旋轉對稱 (相對於YZ平面對稱,但相對於XZ平面不對稱),我們無法假設光線在正Y與負Y的表現是相同的。

全反射 (Total Internal Reflection,簡稱TIR)
在我們的系統中,光線從微顯示器出發,然後在S1’上以TIR的方式反射。這個現象發生在當光線要從折射率高的介質往低折射率屆時傳播時,且入射角度大於全反射角時會發生,發生此現象時,光線的全部能量會完全反射回到原本介質中。全反射角的計算方式如下:
http://forum.zemax.com/Uploads/Images/df7e3950-fd95-4e14-b16b-aec1.png
其中nr代表發生折射時,穿透後的材料的折射率,而ni則是光線入射時所在材料的折射率。在我們的範例中,光線在PMMA材料中傳播,而滿足全反射發生的條件是入射角需大於θc= 42.09度。在優化時,我們必須加以限制,讓光線滿足這個角度。


設定使用者定義的矩形孔徑 (Rectangular Apertures)
在OpticStudio中,表面的外型可以透過Semi-Diameter或是孔徑 (Aperture) 來指定。而在這個系統中,因為稜鏡的形狀,我們必須設定矩形的孔徑。
我們須給稜鏡相關的每個表面 (不包含Coordinate Break,CB是虛擬的,不影響任何實際元件外型) 都指定矩形孔徑。設定的方法是先選擇要設定的面,然後打開Surface Properties對話框,在 “Aperture” 區塊中,把 “Aperture Type” 設為 “Rectangular Aperture” 。然後我們就可以透過Half-Width (半寬)以及Decenter (偏心) 等參數調整我們所需的孔徑形狀。


優化
此系統針對RMS波前差優化,當設計漸漸改進時,需要設定較高的取樣數,並且在評價函數中漸漸加入越來越多的限制條件。主要的限制包含了有效焦距 (EFL)、厚度、全域座標、光路徑長、傾斜/離心、光線角度以及畸變等。
規格上我們還要限制S3到像面以及S1’到像面的光路徑長,以限制像面的位置不會讓系統太大。
類似的,傾斜/離心等參數也需要被限制,以維持稜鏡的形狀,避免稜鏡的各個表面距離太遠。
初始的表面都設定為Standard,然後慢慢改為Even Asphere,而最終某些面我們會改為自由曲面,在此範例中,我們設定S1 (還有S1’) 以及S3為Extended Polynomial。面2維持為Even Asphere。


設定多重組態
目前為止,第一光路 (投影成像) 以自由曲面的方式被優化。而此系統的第二光路 (視穿路徑) 也需要設定並優化,主要透過設定第二個元件:一個輔助透鏡,膠合在自由曲面稜鏡的S2面上。
目前為主,優化好的自由曲面稜鏡以及他的LDE如下 (數字可能會有些許不同,因為優化有隨機性,並且視場的設定可能不一樣等)。非球面以及自由曲面係數可以在附件的檔案中找到。
http://forum.zemax.com/Uploads/Images/a59f8744-46dd-4af0-ae11-2f6f.png

* 注意事項:可以看到我們把LDE中每一列的顏色都特別調整過,讓閱讀較為簡單。

要完整OST-HMD系統,我們需要把膠合輔助透鏡的S4面 (如下圖) 加上現存的自由曲面稜鏡之下。我們將使用多重組態把系統分為兩個不同的光路:投影成像路徑 (第一光路) 以及視穿路徑 (第二光路)。兩個組態的光路重疊顯示後,可以看到如下的畫面:

http://forum.zemax.com/Uploads/Images/ae2ee8bb-ee02-4a86-98e1-b829.png
http://forum.zemax.com/Uploads/Images/f360982f-7c3e-4679-827e-6a53.png
組態1/2
微顯示器投影成像路徑 (第一光路)
組態2/2
視穿路徑 (第二光路)

在設定多重組態時,我們需要考慮第二光路,因此在像面之前加入S4 (在第二光路中,S4是到達像面之前的最後一個面)。初始的LDE加上S4,以及相對應的Coordinate Break看起來如下:

現在光學系統需要在多重組態編輯器中被分為兩個獨立的路徑長。藉由把兩個路徑設定為不同組態,我們就可以針對每個組態,指定不同目標來優化。也就是說,我們可以進一步這個自由曲面稜鏡,指定在投影的顯示器上使用RMS波前差當作優化目標,而用無焦模式來當作輔助透鏡的優化目標。
在視穿路徑上,我們想要能正常觀看外在環境,這需要模擬無限遠處來,落在瞳孔上的光線,然後優化讓這些光線不產生畸變以及任何屈光率。
在組態1的圖面上,我們知道系統需要包含0-13面加上像面 (第17與18面)。在組態2上,我們則使用S1與S2,並且不使用S1’或S3。因此在LDE中不需要用到的面就需要被隱藏。在組態編輯器中,我們可以看到組態2被設定為僅考慮LDE中的0-7、14-16,以及18。給像面用的Coordinate Break都被隱藏起來,因為我們要讓像面垂直於Z軸,模擬遠方來的光線。
http://forum.zemax.com/Uploads/Images/8eb52793-6a34-448c-b49c-9894.png

在編輯器中,可以看到IGNR的設定,顯示 "1" 代表這個面有作用,顯示 “0” 則代表這個面沒有作用,也就是光線追跡時,不會考慮到這個面的存在。舉例來說,上圖編輯器中的3到5行中,可以看到我們指定了14-16面在組態1中要被忽略。請特別注意GLSS操作數,我們用這個操作數把LDE中的第6面 (自由曲面的S2面) 的材料改變了,在組態1中,第6面材料是MIRROR,以模擬反射光路,而在組態2中,此表面被模擬為穿透,以模擬輔助透鏡的功能。AFOC參數則可以切換系統是否是 “無焦模式” 的狀態,我們給組態2 (視穿路徑) 設定了無焦模式。
要優化多重組態系統,MCE (多重組態編輯器) 與LDE中的參數都可以被設定優化。在評價函數中,我們會透過CONF這個操作數來指定要不同組態的優化目標。


分析
我們可以透過評價函數或是OpticStudio內的各種工具分析這個系統。其中我們會使用Huygens PSF來分析,這是因為此系統中包含自由曲面,並且也沒有旋轉對稱。 (關於更多這方面說明,請參考知識庫中MTF相關的文章)。而表面的矢高 (sag) 以及曲率可以透過Analyze > Surface > Sag/Curvature來分析。
另一個重要的工具是Analyze > PAL/Freeform > Power/Pupil Field Map。透過繪圖工具上的 “Settings” 下拉式選單,我們可以分析不同的參數,例如屈光率或焦距。在這個範例中,我們可以使用這個功能來分析視穿路徑到達像面時的屈光率。在我們的設計中,視穿的路徑應該有最小的屈光率 (大約小於0.5D),因而人眼無法看出不同,而不會造成暈眩或不舒適。


參考資料
Cheng, Dewen, Hong Hua, and Yongtian Wang. “Optical See- Through Free- Form Head- Mounted Display.” U.S. Patent 0009845. 9 January 2014.

GO


Similar Topics


Login
Existing Account
Email Address:


Password:


Select a Forum....



































Zemax Users Forum


Search