ZEMAX | 如何使用 ZOS-API 創(chuàng)建飛行時(shí)間自定義分析
LiDAR(光探測(cè)和測(cè)距)是一種傳感器技術(shù),它可以通過測(cè)量發(fā)射的光從周圍物體反射到接收器的時(shí)間來幫助創(chuàng)建環(huán)境的三維數(shù)字地圖。作為自動(dòng)駕駛汽車的一項(xiàng)關(guān)鍵技術(shù),這種三維地圖在汽車工業(yè)中正變得至關(guān)重要。在汽車行業(yè)之外,LiDAR 被用于移動(dòng)設(shè)備,用于增強(qiáng)現(xiàn)實(shí)、測(cè)量距離以及模糊照片和視頻的背景等功能。
在這篇文章中,我們將展示如何使用 ZOS-API 創(chuàng)建自定義分析 (User Analysis),以測(cè)量激光雷達(dá)系統(tǒng)的飛行時(shí)間 (TOF)。此分析將讀取 ZRD 文件,提取其數(shù)據(jù)并繪制到達(dá)探測(cè)器的光線的飛行時(shí)間。
什么是自定義分析?
ZOS-API (應(yīng)用程序接口 (Application Programming Interface) ) 可以使用最新的軟件技術(shù)連接和定制應(yīng)用程序。應(yīng)用程序與 OpticStudio 之間的連接有四種程序模式,但可以分為兩大類:
1) 完全控制(獨(dú)立 (Standalone) 模式和自定義擴(kuò)展 (User Extensions) 模式),這種情況下,用戶通常完全控制鏡頭設(shè)計(jì)和用戶界面;
2) 有限訪問(自定義操作數(shù) (User Operands) 模式和自定義分析模式),這種情況下,用戶使用現(xiàn)有鏡頭文件的副本進(jìn)行處理和分析。
自定義分析模式用于填充自定義分析的數(shù)據(jù)。這些數(shù)據(jù)是用 OpticStudio 提供的現(xiàn)有圖形來顯示,用于大多數(shù)分析。此模式不允許對(duì)當(dāng)前鏡頭系統(tǒng)或用戶界面進(jìn)行更改(即:在這種模式下只允許對(duì)系統(tǒng)的副本進(jìn)行更改)。自定義分析可以用 C++ (COM) 或 C# (.NET) 編寫。本文的自定義分析是用 C#編寫的。
有關(guān)自定義分析的更多信息,請(qǐng)點(diǎn)擊編程 (Programming) 選項(xiàng)卡>關(guān)于ZOS-API (About the ZOS-API) >自定義分析 (User Analysis),查看內(nèi)置幫助文件。
打開新的編程模板
使用 C# 創(chuàng)建自定義分析:

使用 Windows 資源管理器打開解決方案文件夾 ‘..\Documents\Zemax\ZOS-API Projects\CSharpUserAnalysisApplication1’。Visual Studio 也打開了新的解決方案。該解決方案包含模板代碼,該模板代碼可以用作任何自定義分析的基礎(chǔ)模板。在 Visual Studio 中,用戶自定義分析被編譯為可執(zhí)行文件,然后將可執(zhí)行文件復(fù)制到 \Zemax\ZOS-API\User Analysis 文件夾中,以便 OpticStudio 可以使用。
打開激光雷達(dá)文件
在本文的附件文件 “Flash_NSC_Final.zar” ,(聯(lián)系我們下載文章中的附件)中包含代表快閃激光雷達(dá)的系統(tǒng),激光雷達(dá)位于貨車的頂部,貨車在路上,路上還有兩個(gè)行人和一堵立著的綠色墻體。

激光雷達(dá)向場(chǎng)景中發(fā)射激光脈沖:

光照射到周圍的物體上發(fā)生散射,部分光被散射回激光雷達(dá)探測(cè)器。
如下圖所示:來自紅色行人的散射光到達(dá)了激光雷達(dá)探測(cè)器的一個(gè)單位像素上。

激光雷達(dá)會(huì)將接收到返回信號(hào)花費(fèi)的時(shí)長(zhǎng)記錄下來,即飛行時(shí)間,并將飛行時(shí)間轉(zhuǎn)換為距離。像素的位置可表明入射光的方向。
這兩個(gè)值都表明散射光線來自站在離貨車10米遠(yuǎn)的紅色行人。OpticStudio 實(shí)際上測(cè)量的不是時(shí)間,而是光線路徑長(zhǎng)度,也就是物體和探測(cè)器之間的距離。
探測(cè)器查看器 (Detector Viewer) 可以顯示探測(cè)器上輻射特性的測(cè)量結(jié)果,但它不顯示從激光雷達(dá)光源返回到激光雷達(dá)探測(cè)器的光線經(jīng)過的距離。這就是 ZOS-API 派上用場(chǎng)的時(shí)候!自定義分析可以顯示探測(cè)器到物體的距離數(shù)據(jù),從而反映飛行時(shí)間的信息。

使用光線數(shù)據(jù)庫查看器讀取ZRD文件
ZRD 文件即光線數(shù)據(jù)庫文件,光線路徑長(zhǎng)度可以在 ZRD 文件中讀取。
運(yùn)行光線追跡 (Ray Trace) 并通過選中保存光線 (Save Rays) 將光線保存為 ZRD 文件。

點(diǎn)擊分析 (Analyze) >光線數(shù)據(jù)庫查看器,可以顯示照射到探測(cè)器17上的光線的路徑長(zhǎng)度。將“使用字符串 (Apply Filter) ”設(shè)置為 H17來過濾照射到探測(cè)器17上的光線。

例如,光線1的第8段已經(jīng)到達(dá)探測(cè)器17,該光線的路徑長(zhǎng)度 4E4 (40m) 是所有光線段的光線路徑長(zhǎng)度之和。光線經(jīng)過物體,然后回到探測(cè)器。物體到探測(cè)器的距離是該路徑的一半,即20米。

所以,物體到探測(cè)器的距離可以通過讀取照射到探測(cè)器的每條光線的路徑長(zhǎng)度來確定,可以使用 ZOS-API 自動(dòng)完成此操作。