在消費類電子產(chǎn)品領域,工程師可利用激光雷達實現(xiàn)眾多功能,如面部識別和3D映射等。盡管激光雷達系統(tǒng)的應用非常廣泛而且截然不同,但是 “閃光激光雷達” 解決方案通常都適用于在使用固態(tài)光學元件的目標場景中生成可檢測的點陣列。憑借具有針對小型封裝結(jié)構(gòu)但可獲取三維空間數(shù)據(jù)方面的優(yōu)勢,固態(tài)激光雷達系統(tǒng)在智能手機和筆記本電腦等消費類電子產(chǎn)品中日益普及。在這個系列的文章中,我們將探討如何使用 Ansys Zemax OpticStudio 對此類系統(tǒng)進行建模,包括從序列初始設計到集成機械外殼的整個流程。該文章為閃光激光雷達系統(tǒng)建模系列文章的第二篇。
激光雷達系統(tǒng)在工業(yè)界中有著多種場景下的應用,對應于不同種類的激光雷達系統(tǒng)(比如用于掃描元件或確定視野的系統(tǒng)等),本示例將主要探索如何使用衍射光學元件來復制光源陣列在目標場景中的投影。成像透鏡系統(tǒng)隨后可觀察到投影的光源陣列,以獲取投射光線的飛行時間信息,進而生成投影點的深度信息。
在本文中,我們將介紹如何將上篇的序列模式起始結(jié)構(gòu)進行轉(zhuǎn)換,并向非序列模型中添加更多細節(jié)。我們還將應用 ZOS-API 在閃光激光雷達系統(tǒng)中生成一些時間飛行結(jié)果。
為了觀察這兩個模塊結(jié)合成為整個系統(tǒng)將如何工作,我們可以在每個系統(tǒng)中使用 “轉(zhuǎn)換至非序列模式組” 工具(可以在?文件選項卡…轉(zhuǎn)換至非序列模式組?中找到)來生成照明和成像子系統(tǒng)的非序列模型。在照明模塊(清除多重結(jié)構(gòu)編輯器,只保留一種結(jié)構(gòu))和成像模塊中,轉(zhuǎn)換至非序列模式組工具將使用以下設置:
以下為非序列模式下各子系統(tǒng)的轉(zhuǎn)換輸出結(jié)果:
在此階段,我們可以進行一些編輯,以更輕松地組合模塊。在結(jié)尾裝配中,我們假設照明模塊的光源和成像模塊的傳感器在同一個平面上,因為我們可以想象它們在整個系統(tǒng)中共享同一個電路板。我們在非序列模式中采用的總體方法是:
對于照明模塊而言:
對于成像模塊而言:
包含上述修改的示例文件,已作為本文章附件添加至附件下載部分。示例文件分別為:“FlashLidar_Emitter_DiffGrat_PostEdit.ZAR” 以及 “FlashLidar_Receiver_PostEdit.ZAR”。
調(diào)整后,我們可以通過復制和粘貼將成像模塊物體插入到照明模塊的非序列元件編輯器中。粘貼后,我們需要確保為插入后的物體重新編號 “參考物體 (Reference Object)” 參數(shù),以指向新的物體編號(如適用的話),例如我們的成像模塊光學元件現(xiàn)在需要指向組合模型中的 “物體10”(“成像模塊參考” 為空物體)。然后使用參考空物體編輯 X 位置來確定模塊的布局:
為了確定模型,我們首先需要更新光源定義,以整合關于陣列和發(fā)射特性的其他詳細信息。我們使用以下參數(shù)將光源從橢圓光源(Source Ellipse)轉(zhuǎn)換到二極管(Source Diode)光源物體:
參考物體:1
X-/Y-發(fā)散角:5°
X-/Y-超高斯系數(shù):0
X’/Y’-數(shù)量:5
Delta-X/Y:32mm
在我們的場景中生成完整的光斑陣列需要修改衍射光柵(Diffraction Grating)物體的物體屬性(Object Properties)。對于每個衍射光柵,我們通過衍射(Diffraction)選項卡中的 “分裂” 設置來定義衍射級次,使用 “按以下表格分裂” 實現(xiàn)每個衍射級次的理想、均勻傳輸。為簡單起見,將 I.99999999 的理想膜層定義放在兩個模塊所有元件的前后表面上。通過這些修改,一旦允許在 3D視圖(3D Viewer)中分裂光線,我們就可以查看完整的投影點陣列:
為了使壁面物體作為散射表面,在 “散射壁面” 探測器上應用了朗伯散射配置文件。同樣,我們還通過設置 I.0 膜層(確保100%反射)和散射分數(shù)(Scatter Fraction)值為1,使壁面成為理想的反射和散射表面。然而,在當前定義中,由于廣角散射,散射光線很少能追跡到成像模塊。因此,重點采樣(Importance Sampling)可用于迫使光線向任何指定物體的頂點散射(參閱文章“如何利用重點采樣進行高效的散射建?!?(英文原文),了解關于重點采樣工作原理的更多詳情)。我們將使用的目標是 “物體11”,即成像模塊的物理孔徑,尺寸值為 0.7 mm。
當瞄準目標物體時,由于重點采樣會降低散射光線的功率(以考慮光線從表面法線散射時的實際功率降低),因此需要降低極小相對光線強度(Minimum Relative Ray Intensity),以允許 OpticStudio 追跡這些較低能量的光線。在這種情況下,設置為 1e-8 可以追跡光線,我們可以看到光線現(xiàn)在可以離開照明模塊,由成像模塊捕獲。應該注意的是,在兩個模塊之間引入了一個吸收矩形物體,以防止照明系統(tǒng)的雜散光影響成像透鏡探測器。
現(xiàn)在,我們可以觀察投影到壁面上的點列圖案以及通過成像透鏡觀察到的點列圖案。該步驟的示例文件已經(jīng)保存為:“FlashLidar_FullSystem.ZAR”:
激光雷達系統(tǒng)通過測量光到達探測器時的飛行時間來獲得場景的深度信息。例如,傳感器通常是時間門控的,以捕獲從觀察到的場景中散射的入射光束的信息。
通過利用 ZOS-API 來構(gòu)建用戶分析(User Analysis),我們可以獲得落在結(jié)果矩形探測器上的每條光線的飛行時間數(shù)據(jù);通過解析 ZRD 文件并分析落在成像模塊傳感器上的光線路徑長度,從而獲得所觀察場景的深度。知識庫文章 “如何使用ZOS-API創(chuàng)建飛行時間用戶分析” 包含了構(gòu)建這類用戶分析的更多信息,我們將直接使用該分析。
“如何使用ZOS-API創(chuàng)建飛行時間用戶分析” https://support.zemax.com/hc/zh-cn/articles/1500005577762
在閃光激光雷達系統(tǒng)中,添加了一些相關的幾何結(jié)構(gòu)用例,例如一個小型桌子模型和一個用作手勢識別的(極為簡化)拳頭大小的球體。
在運行用戶分析(User Analysis)之前,需要先進行光線追跡,并且需要在光線追跡控制(Ray Trace Control)窗口中保存光線追跡數(shù)據(jù)。然后,用戶分析將能夠讀取保存的.ZRD文件。在分析中使用以下設置,我們可以獲得以下深度輸出:
有了這些結(jié)果,我們可以區(qū)分場景中的不同特性以及它們在不同深度的位置。例如,我們粗略的 “拳頭” 示意球體位于用戶分析輸出的左上角,而位于桌子模型頂部的杯子則位于場景右上角稍遠一些的位置。為了進行演示,我們用矩形光源(Source Rectangle)使光源的全部區(qū)域發(fā)光,使場景充滿照明,從而更容易看到整個場景的深度信息:
通過設計閃存激光雷達系統(tǒng)的照明模塊和成像模塊,我們可以在結(jié)果的探測器平面上求解所投影的點陣列,并利用 ZOS-API 創(chuàng)建用戶分析,以獲取點陣列所到達的幾何結(jié)構(gòu)的深度信息。能夠求解所觀察場景的特征并檢索距離信息,意味著這些信息能夠傳送至計算軟件生成圖像供用戶查看,并利用用戶的運動數(shù)據(jù)在計算機生成的場景中產(chǎn)生一些變化。
在本文章中,我們已經(jīng)介紹了序列模式下的閃光激光雷達照明和成像模塊是如何轉(zhuǎn)換到非序列模式的。我們還演示了如何改進模型,以及將兩個模型合并到單個 OpticStudio 文件中的一些方法。此外,還定義了光源的其他細節(jié),并定義了遠距離壁面上的散射屬性,以驗證穿過整個系統(tǒng)的光線追跡。在后面,我們討論了 ZOS-API 中內(nèi)置的自定義用戶分析的用法,該分析返回了全閃光激光雷達系統(tǒng)的時間飛行數(shù)據(jù)。