?

駕駛模擬器可調節后視鏡仿真方法研究*

2020-04-24 02:27劉晶郁劉新亮楊煒李子然宋曉妍
汽車技術 2020年4期
關鍵詞:后視鏡視點模擬器

劉晶郁 劉新亮 楊煒 李子然 宋曉妍

(長安大學,西安 710064)

主題詞:駕駛模擬器 微軟基礎類庫 后視鏡 串口通信 離屏渲染

1 前言

汽車駕駛模擬器是一種模擬車輛駕駛操作和動力學特性,提供駕駛訓練和駕駛員特性分析功能的現代化設備[1-3]。視景仿真的真實程度是評價駕駛模擬器的重要指標,而后視鏡顯示的車外有效視野是視景仿真和人機交互的重要體現[4]。駕駛模擬時,需要將后視鏡視景實時地渲染在顯示器上,并且不同場景下后視鏡需求往往不同,所以實現后視鏡的可調節和實時顯示對于提高駕駛模擬的視野舒適度有重要意義。

針對駕駛模擬器的后視鏡仿真,研究人員提出了多種方法:楊秀杰等[5]提出了一種多視口顯示后視鏡的方法,將后視鏡顯示在屏幕的上方,但這種后視鏡限制了前方駕駛視野,不符合駕駛員的觀察習慣;劉志強等[6]提出了一種基于動態紋理映射的后視鏡可視化方法,通過指向后視鏡的函數實現了后視鏡成像,但僅實現了單一后視鏡成像;曾誠等[7]使用人機工程學方法對三聯屏后視鏡進行布置,在提高駕駛員視覺效率的同時改善了視覺舒適度。但使用以上方法設計的后視鏡均不具備調節性,對不同駕駛工況下后方視野的適應性不高。

基于此,本文提出一種基于微軟基礎類庫(Microsoft Foundation Classes,MFC)的可調節后視鏡實現方法,使用開放圖形庫(Open Graphics Library,OpenGL)中的離屏渲染技術將后視鏡顯示在虛擬視景中,實現后視鏡形狀及視景顯示的設計,同時,編寫后視鏡視野調節代碼以實現后視鏡的可調節控制,并基于駕駛模擬器對后視鏡成像效果進行驗證。

2 系統總體結構

系統結構由硬件部分、軟件部分和后視鏡成像視景組成,如圖1 所示。硬件部分由后視鏡調節按鈕、Arduino數據采集板組成;軟件部分由后視鏡調節模型、MFC多線程運行模塊、后視鏡視景渲染模塊組成,使用MultiGen Creator 建立三維駕駛場景,利用Vega Prime結合MFC 多線程框架聯合編寫后視鏡調節代碼,實現虛擬后視鏡的控制;駕駛模擬器后視鏡中的成像視景是圖形處理器實時渲染的圖形。

圖1 后視鏡成像系統

3 硬件部分

使用Arduino 單片機對后視鏡按鈕信號進行采集。通過模擬控制信號,實現外部硬件對虛擬車輛后視鏡的控制[8]。Arduino 與PC 端通過USB 串口建立通信,PC 端程序新建第三方串口CnComm 類Com,對Arduino 的數據進行讀取,硬件通信方式如圖2所示。

圖2 硬件通信方式

通過Arduino 單片機對控制信號進行采集,并使用串口通信(Serial)庫將信號封裝成數據幀,進而實現與PC 端之間的通信。采集的按鈕信號見圖2。后視鏡調節按鈕布置在駕駛模擬器的控制臺上,符合駕駛員在模擬駕駛時對后視鏡調節操作的真實感受。

Arduino 單片機與按鈕硬件的連接電路如圖3 所示。按鈕觸發信號為數字信號,占用Arduino 單片機6個AD(模擬量轉變為數字量)引腳,同時包含1個5 V引腳、1個接地引腳。

圖3 Arduino與硬件按鈕連接電路

4 軟件部分

4.1 可調節后視鏡軟件框架

在硬件的基礎上,軟件部分與硬件信號和后視鏡調節模型相連接。軟件采用基于MFC 的多線程框架,使其能在Windows 平臺上對Vega Prime(VP)進行二次開發,程序框架主要分為MFC 主控線程、VP 仿真線程和串口通信線程,軟件運行框架如圖4所示。

圖4 軟件框架

VP仿真線程通過調用VP制作的acf文件實現場景渲染和視景驅動,在該線程中編寫程序代碼實現后視鏡的調節和實時渲染。VP仿真線程與串口通信線程的通信方式如圖5所示。串口通信線程和VP仿真線程的數據交互是控制后視鏡的基礎,在VP 仿真線程完成系統初始化、定義配置后[9],VP 線程一直檢測控制參數的變化,并實時計算更新,進行視景渲染。

圖5 VP線程與串口通信線程通信框架

4.2 后視鏡調節模型

本文設計的后視鏡調節模型可以模擬視野范圍的變化以達到實時改變后視鏡視景的目的。后視鏡的初始參數,如視點和視野范圍,需要在VP中設置后視鏡坐標變換(Mirror Transform)和后視鏡通道(Mirror Channel)的參數,完成初始化。需要注意的是,后視鏡中Mirror Transform的數據是綁定車輛后,相對于車輛坐標系的位置信息。后視鏡調節模型如圖6所示。

圖6 后視鏡調節模型

4.3 后視鏡成像原理

后視鏡的虛擬視景渲染使用離屏渲染技術,依賴OpenGL 中額外創建的幀緩存區對象(Frame Buffer Object,FBO)。OpenGL 可以將原先繪制到窗口的Mirror Channel 幀緩存區重定向到FBO中。通過將FBO與渲染圖像(Renderbuffer Images)綁定,OpenGL 執行離屏渲染將后視鏡視景顯示在虛擬視景中,提高了三維渲染速度[10]。在后視鏡顯示前使用迭代器對FBO 對象中的紋理進行鏡像操作。后視鏡成像過程如圖7所示。

圖7 后視鏡成像過程

4.4 后視鏡視景的顯示

為了獲得后視鏡的顯示效果,需要確定后視鏡視點和視野范圍參數。后視鏡視點依據主視點和后視鏡的位置獲得,其選擇符合光的反射原理,如圖8所示,假設后視鏡為平面鏡,主視點A關于鏡面對稱的虛擬視點A'與主視點A是等效視點,對于駕駛模擬仿真來說,虛擬視點A'即為后視鏡視點。

圖8 后視鏡視點

后視鏡視點的位置應為真實視點相對于后視鏡鏡像后繞垂直于地面的軸線逆時針旋轉180°形成的虛擬視點位置。這樣形成的后視鏡角度滿足最佳后視鏡視野的要求[11]。后視鏡的視點參數在VP的Transform中通過函數setTransform 和setRotate 設置,在車輛笛卡爾坐標系下,前者設置視點相對坐標系的空間位置參數X、Y、Z,后者設置相對旋轉參數橫擺(Heading)、俯仰(Pitch)、側傾(Roll)。

確定后視鏡視點后,需要設置后視鏡視野范圍。人對物體的視覺感受滿足視點成像原理,符合近大遠小的視覺習慣,構造的視覺截錐體如圖9所示。根據視點成像原理,在固定視點后,視野范圍由視野角度和視野深度等因素決定。由圖9 可知,在確定視野范圍后,后視鏡圖像為后視鏡視點視野近平面、遠平面投影所形成的透視投影圖像,并通過駕駛模擬器將虛擬視景圖像顯示在屏幕上[12]。圖9 中,α為視角垂直方向夾角,β為視角水平方向夾角,ZNear為近平面距離,ZFar為遠平面距離。

圖9 視覺截錐體

在 VP 中的后視鏡通道中使用函數setFOVSymmetric(θ,-1)和setNearFar(ZNear,ZFar)設置后視鏡的視野角度和視野深度最終獲得投影矩陣MP。利用setFOVSymmetric 函數設置后視鏡的縱橫比即寬高比為1,因此在后視鏡的透視投影成像中,后視鏡投影變換矩陣MP為:

使用后視鏡投影變換矩陣獲得二維像素存儲數組,即后視鏡虛擬視景。

5 后視鏡成像效果驗證

在城市公路場景和高速公路場景下對后視鏡成像效果進行仿真驗證。仿真系統的硬件配置為Intel i7-8700 處理器、RAM 16G內存、GTX1070 6G顯卡、Arduino 采集板卡;軟件配置為Windows 10 操作系統、VS2010開發環境、MultiGen Creator 14.0建模工具、Vega Prime 14.0 驅動工具;顯示設備為某型曲面屏顯示器,分辨率為5 120 像素×1 440 像素。駕駛模擬器如圖10所示。

圖10 駕駛模擬器

參照GB 15804—2013,某型轎車在固定座椅條件下的駕駛員眼點在H點垂直向上635 mm,Y向±32.5 mm位置,使用95 百分位眼橢圓建立后視鏡視點的透視投影視景,眼橢圓尺寸為173.8 mm×60.3 mm×93.4 mm,側視圖長軸傾角為12°。選擇2個眼點的中點作為主視點建立固定后視鏡模型,選擇95 百分位眼橢圓作為主視點區域建立可調節后視鏡模型。

可調節后視鏡中的左、右外后視鏡設計有2個旋轉自由度,車內后視鏡只設計了1 個Heading 旋轉自由度。固定后視鏡的參數在各場景中保持不變,并根據視點區域對可調節后視鏡預設了調節限制。

根據城市公路、高速公路、倒車和轉彎4 種駕駛工況下的后視野要求,使用駕駛模擬器進行驗證,對比固定后視鏡與可調后視鏡在不同工況下的后方視野效果。測試中10 名男性駕駛員對該駕駛模擬器進行體驗,身高范圍為165~180 cm,所有駕駛員在測試時精神狀態良好。駕駛員分別在固定后視鏡和可調節后視鏡條件下進行4 種工況的測試,每種工況測試時長為3 min,并進行滿意度評分。滿意度評分為0~10之間的整數,數值越大代表滿意度越高,并規定滿意度達到7 或以上為正面評價。試驗駕駛員的滿意度和正面評價人數如圖11 和圖12 所示。

圖11 駕駛員平均滿意度

由于駕駛員操作習慣及模擬環境存在差異,在相似的模擬環境下,不同駕駛員得出的滿意度評分可能不同,但駕駛員的主觀評分依然可以體現后視鏡視野的舒適程度。由試驗結果可知,可調節后視鏡在城市公路、高速公路和倒車工況下的滿意度和正面評價人數都優于固定后視鏡,雖然在彎道工況下的正面評價人數與固定后視鏡相等,但平均滿意度仍高于固定后視鏡。相反,固定后視鏡在不同場景下的平均滿意度和正面評價人數波動更大,對駕駛工況的適應性較差。由此說明可調節后視鏡在不同工況下的后方視野舒適度更好,滿足駕駛員對不同駕駛環境和駕駛工況下的后方視野要求。

圖12 駕駛員正面評價人數

后視鏡成像視景不僅要滿足駕駛員對后方視野的需求,同時要滿足視景仿真的實時性要求。仿真時,對一位駕駛員在漫游駕駛工況下的仿真幀率進行采集,結果如圖13 所示,在高速公路駕駛模擬中,平均幀率為107 幀/s,最高幀率為146 幀/s,最低幀率為71 幀/s;在城市公路場景下的平均幀率為48 幀/s,最高幀率為77 幀/s;在設置有3 個后視鏡的情況下,各工況幀率保持在33 幀/s 以上。仿真結果表明,本文提出的車輛后視鏡仿真方法不僅可以滿足駕駛員對后方視野的需求,同時能夠保持較高的幀率,滿足駕駛仿真的需求。

圖13 漫游駕駛工況下的仿真幀率

6 結束語

本文基于MFC多線程程序框架設計可調節后視鏡仿真方法,并在此基礎上利用串口通信技術實現Arduino 硬件電路控制后視鏡視景,通過模擬視點和視野范圍的變化設計了后視鏡調節模型,利用視點成像特性推導出后視鏡投影變換矩陣,從而獲得后視鏡投影圖像,最終通過鏡像處理和離屏渲染技術獲得理想的后視鏡視景。對比試驗結果表明,提出的后視鏡仿真方法成像效果和對不同駕駛環境的適應性更好,同時可以滿足實時性要求,提高了汽車駕駛模擬的逼真度和后方視野的舒適度。

本文在假設后視鏡鏡面為平面鏡的基礎上,使用視點成像原理,對后視鏡視點進行了理想化假設。未來可著重研究具有凸面鏡效果和模擬雙眼成像的后視鏡模型,以開展優化。同時,由于時間和條件限制,僅10 名駕駛員參加了測試,未來可通過增加駕駛員數量保證測試結果的普適性。

猜你喜歡
后視鏡視點模擬器
駕駛模擬器轉向系統的設計與研究
虛擬視點插值中參考視圖選擇策略
盲盒模擬器
下雨天,車窗和后視鏡起霧怎么辦
車輛防霧后視鏡
中國首個自主研發的地球模擬器投入使用
臂戴后視鏡
環境視點
回憶是……
尋找新的視點
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合